如何更改 RSA 的语言设置

如何更改 RSA 的语言设置,第1张

如何更改 RSA 的语言设置

首先, 找出三个数, p, q, r,

其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数

p, q, r 这三个数便是 private key

接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1)

这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了

再来, 计算 n = pq

m, n 这两个数便是 public key

编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a <n

如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t),

则每一位数均小於 n, 然後分段编码

接下来, 计算 b == a^m mod n, (0 <= b <n),

b 就是编码後的资料

解码的过程是, 计算 c == b^r mod pq (0 <= c <pq),

於是乎, 解码完毕 等会会证明 c 和 a 其实是相等的 :)

这个很简单 如果密码手工输入 理论上完全可以 但是密钥有时候二进制有时候会上百位 转化到其他进制要几十位 很容易出错 而且私钥 公钥是从一个推出另一个的 手工输入怎么保证你输入的公钥私钥就可以一定可以配成一对keyPair 而且公钥私钥 必须还要从用p q来算 等等如果手工输入太麻烦了

为何我们不把这些繁琐的 容易出错的东西 封装起来来简化我们的开发呢

所以我们有了各种各样的开发包 各种各样的架构 各种各样的库

java中

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA")

KeyPair key = keyGen.generateKeyPair()

cipher.init(Cipher.ENCRYPT_MODE, key.getPublic())

cipher.init(Cipher.DECRYPT_MODE, key.getPrivate())

这是我以前写的代码的片段 不是连续的 大体上就是先得到一个rsa的密钥对 然后调用getpublic()

getprivatekey()获取公私钥就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6074639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存