我已经读过《使用Java加密整数》和《使用通行短语用DES加密》。
我需要的是一个简单的Encrypter,它将具有以下约束的12位数字转换为12位数字:
翻阅文学作品后,我有了这段代码
public void mytestSimple(long code, String password) throws Exception {
SecretKey key = new SecretKeySpec(password.getBytes(), "DES");
Cipher ecipher = Cipher.getInstance("DES");
ecipher.init(Cipher.ENCRYPT_MODE, key);
System.out.println(ecipher.getOutputSize(8));
byte[] encrypted = ecipher.doFinal(numberToBytes(code));
System.out.println(encrypted + "--" + encrypted.length);
Cipher dcipher = Cipher.getInstance("DES");
dcipher.init(Cipher.DECRYPT_MODE, key);
byte[] decrypted = dcipher.doFinal(encrypted);
System.out.println(bytesToNumber(decrypted) + "--" + decrypted.length);
}
public void testSimple() throws Exception {
mytestSimple(981762654986L, "password");
}
我遇到了关于
*我在下面添加的答案*
我添加了一个答案,即从标准Java RSA密钥对生成逻辑中抽出的40位RSA。我仍然需要处理极端情况。我将接受答案并投票赞成“
Tadmas”,我认为这会引导我找到答案。有人可以告诉我我的算法是否很弱/容易受到攻击吗?
我认为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 encoded = message.modPow(keypair.e, keypair.n);
System.out.println(encoded); //gives some encoded value
BigInteger decoded = encoded.modPow(keypair.d, keypair.n);
System.out.println(decoded); //gives back original value
}
缺点
问题内容: 我想用Java加密和解密密码,然后以加密形式存储到数据库中。如果它是开源的,那就太好了。有什么建议/建议吗? 问题答案: 编辑 :这个答案是旧的。现在 不建议 使用MD5,因为它很容易被破坏。 我想象中的MD5必须足够好?您可以使用MessageDigest实现它。 这里还列出了其他算法。 如果确实需要,这是它的第三方版本: Fast MD5
问题内容: 我正在使用ExtJS框架。我在 JavaScript中 有MD5函数来加密某些JSON。我的后端使用Java,所以我想知道如何使用 Java 解密MD5 Javascript加密? 这是我正在使用的MD5函数的JS等效项: 问题答案: MD5是 哈希 (即单向转换),因此您无法对其进行解密。您可以将已知哈希与从明文计算出的哈希进行比较,以验证输入的有效性。Java已经为此内置了库。我在
我想得到的是 使用libnail加密密码salt 我有一个列表的盐,我想用它来加密/解密我的密码。当我加密密码时,我得到一个哈希返回,这样一个似乎可以工作,但在解密时,我总是得到假返回值。 我是否使用了错误的方法对libnaude进行加密/解密,还是完全朝着错误的方向行驶? 我的加密/解密源: 我感谢任何帮助! 多姆
问题内容: 这是我正在做的事情,可能看起来有些笨拙,但是可以帮助您解决该问题。我得到一个。阅读几乎所有相关主题,但找不到合适的解决方案。我是加密解密程序设计的新手,需要在我的Java应用程序之一中实现它。 谢谢..这就是代码的样子.... 问题答案: 在这里,您需要了解的是密文可能包含不可打印的字符。因此,当您使用readLine()时,它可能不会为您提供文件中的所有字节。 同样,它并没有给您您认
问题内容: 在数据访问层中具有Spring&Hibernate(JPA)的Java应用程序堆栈中,有什么好的方法来应用密码加密(希望使用注释),以及在哪里可以找到更多有关完成密码的方法(教程等)? 可以理解,我将使用JCA支持的算法对密码进行加密,但是如果有一种简便的方法,我宁愿不必实现包装逻辑。 我正在查看Jasypt,并且是a)想知道这是否是一个不错的选择以及如何做到这一点,以及b)人们还在为
问题内容: 我是密码学的新手。我希望学习如何在文件中加密和解密文本……当我在net中引用相关文章时。我怀疑对同一文本进行多次加密后,单个文本的加密文本是否会相同?谁能解决我的疑问? 问题答案: 这是使用该类的示例: