0

我一直在使用 jCryption 进行安全登录。在客户端上我使用 JavaScript 包,在 Java 解密上我使用 BouncyCastle jar 解密。

问题是它在 Tomcat 中运行良好,但是当我使用相同的 webapp 并在 Jboss 上部署时,我在加载 BouncyCastle jar 时遇到问题。

我的问题是:有没有一种方法可以使用 jCryption 进行加密,从而产生更标准化的 RSA 输出,从而允许我使用其他安全提供程序?

4

3 回答 3

0

这是与 jCryption 兼容的 RSA 解码的片段。我们假设这encExternalKey就是 jCryptionkey在握手调用时发送的参数。modulussecretExponent取自100_1024_keys.inc.phpjCryption 附带的文件。

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();
于 2013-08-22T13:52:07.333 回答
0

一般来说,如果您想要安全,请避免使用 JavaScript 加密,而是使用 SSL/TLS。

主要问题是:

  • 加密例程的实施质量不足(例如随机数)
  • 客户端不知道脚本是否已被 MITM 攻击者篡改,即使 JavaScript 库的质量足够高。

不幸的是,您实际上并没有通过在您的网站上使用 JavaScript 加密来增加太多安全性。

于 2012-03-29T16:33:45.537 回答
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

于 2012-03-29T16:26:50.647 回答