栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用密码和Java将12位十进制数字加密/解密为其他数字?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用密码和Java将12位十进制数字加密/解密为其他数字?

我认为Tadmas下面给出的答案非常有帮助,我希望你们在下面破解/欺负我的实现。正如Tadmas指出的,我所有的数字都是40位(12位数字是10 ^
12,大约是2 ^ 40)。

我复制了sun.security.rsa.RSAKeyPairGenerator(链接),并为40位RSA算法创建了自己的生成器。标准之一需要512-1024位,因此我删除了它周围的输入检查。一旦我创建了一个合适的n,e,d值(按照alog,e似乎是65537)。以下代码很好用,

public void testSimple() throws NoSuchAlgorithmException {    MyKeyPairGenerator x = new MyKeyPairGenerator();    x.initialize(40, new SecureRandom("password".getBytes()));    MyPublicPrivateKey keypair = x.generateKeyPair();    System.out.println(keypair);    BigInteger message = new BigInteger("167890871234");    BigInteger enpred = message.modPow(keypair.e, keypair.n);    System.out.println(enpred); //gives some enpred value    BigInteger depred = enpred.modPow(keypair.d, keypair.n);    System.out.println(depred); //gives back original value}

缺点

  1. 编码的不一定是12位数字(有时可能以0开头,这意味着只有11位数字)。我想总是在前面填充0零,并在开头添加一些CHECKSUM数字,这可以缓解此问题。所以总是13位数…
  2. 40位RSA的安全性比512位弱(不仅是512/40倍,而且是指数倍)。您能为我指出40位RSA与512位RSA相比有多安全的链接吗(我可以在Wiki中看到某些内容,但无法具体确认受到攻击的可能性)?关于概率/破解N的函数所需的RSA尝试次数/概率的任何链接(wiki?)(其中n是所使用的位数)将非常棒!


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号