网站逆向分析js之RSA算法原理

  • 传统密码无论加密解密都用了一个密码

  • rsa非对称性加密由一对密钥组成,配对使用

  • public key(代号’e’),公钥,专门用来加密,可以由多人掌管

  • private key(代号’d’),私钥,专门用来解密,由主人自己进行保管

  • 一般公开发布公钥,自己用私钥进行解密


举个例子,我是B:

A 想要发送’Hello World’一个字符串给我, A 必须在我这拿一个公钥(e),用公钥(e)加密了这段文字,然后通过网络发送给我,我用私钥(d)就可以把加密后的东西给解开,解开后可以看到里面的内容


原理

用到的知识
  • 质数: 大于1的自然数,只能被1和本身整除

1.选择两个非常非常大的质数(数字越远,越难被解密)

  • 举个例子:
  • 1.选择两个质数
    • p = 3, q = 11
  • 2.设一个变量n = p * q

    • 也就是n = 3 * 11 = 33
  • 3.设一个欧拉函数Z = (p - 1)(q - 1)

    • 也就是Z = 2 * 10 = 20
    • 作用是取值范围
  • 4.设一个e 加密密码,必须满足以下条件, 比如 7

    • 范围在1 < e < Z
    • e和n互质(只有最大公约数为1)

计算过程用python环境来计算,不要用计算器,值会不正确


  • 5.设一个d解密密码,必须满足以下条件
    • (d * e) % Z = 1
    • —————————–
    • 也就是7d % 20 = 1
    • 窍门: 20 + 1就是符合的值
    • 7d = 21
    • d = 3

有一条消息m,值为2,即m=2,加密成密文C

加密过程:

C = me % n
C = 27 % 33 = 29

此时在网络传输过程中是29


解密过程

m’ = Cd % n
m’ = 24389 % 33 = v24389/33 = 2

此时完成了加密解密的过程,最后解密结果是2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葬爱程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值