我一直在使用jCryption进行安全登录。在客户端我正在使用JavaScript包和Java解密我正在使用BouncyCastle jar来解密。
问题是它在Tomcat中运行正常但是当我使用相同的webapp并在Jboss上部署时,我在加载BouncyCastle jar时遇到问题。
我的问题是:有没有办法使用jCryption进行加密,这将产生更标准化的RSA输出,这将允许我使用其他安全提供程序?
答案 0 :(得分:0)
jcryption并不像你想象的那么安全:
http://www.securityfocus.com/archive/1/520683
我的建议......做类似的事情:
http://www.frostjedi.com/terra/dev/rsa/index.php
以下网址详细说明:
http://area51.phpbb.com/phpBB/viewtopic.php?f=84&t=33024&start=0
答案 1 :(得分:0)
一般来说,如果您需要安全性avoid JavaScript cryptography,请改用SSL / TLS。
主要问题是:
不幸的是,您实际上并没有在网站上使用JavaScript加密技术来增加安全性。
答案 2 :(得分:0)
以下是与jCryption兼容的RSA解码片段。我们假设encExternalKey
是jCryption在握手调用中在key
参数中发送的内容。 modulus
和secretExponent
取自jCryption附带的100_1024_keys.inc.php
文件。
RSAPrivateKeySpec privateKeySpec =
new RSAPrivateKeySpec(new BigInteger(modulus, 10), new BigInteger(secretExponent, 10));
RSAPrivateKey privateKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(privateKeySpec);
Cipher cipher = Cipher.getInstance("RSA/ECB/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
StringBuilder externalKeyBuf =
new StringBuilder(new String(cipher.doFinal(new BigInteger(encExternalKey, 16).toByteArray())));
String externalKey = externalKeyBuf.reverse().toString().trim();