首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免在jCryption中使用BouncyCastle作为提供者

如何避免在jCryption中使用BouncyCastle作为提供者
EN

Stack Overflow用户
提问于 2012-03-29 08:48:45
回答 3查看 1.2K关注 0票数 0

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

问题是,它在Tomcat中工作得很好,但当我使用相同的webapp并在Jboss上部署时,我在加载BouncyCastle jar时遇到了问题。

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

EN

回答 3

Stack Overflow用户

发布于 2012-03-30 00:26:51

jcryption并不像你想象的那样安全:

http://www.securityfocus.com/archive/1/520683

我的建议是。做一些类似这样的事情:

http://www.frostjedi.com/terra/dev/rsa/index.php

以下URL详细说明:

http://area51.phpbb.com/phpBB/viewtopic.php?f=84&t=33024&start=0

票数 0
EN

Stack Overflow用户

发布于 2012-03-30 00:33:46

一般来说,如果你想要安全性,avoid JavaScript cryptography,使用SSL/TLS代替。

主要问题是:

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

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

票数 0
EN

Stack Overflow用户

发布于 2013-08-22 21:52:07

下面是与jCryption兼容的RSA解码代码片段。我们假设encExternalKey是jCryption在握手调用时在key参数中发送的内容。modulussecretExponent取自jCryption随附的100_1024_keys.inc.php文件。

代码语言:javascript
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9917736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档