本人新手,现遇到个项目,需要进行"RSA/ECB/PKCS1Padding"算法加密. java代码如下: public static String encrypt(String source, String publicKey) throws Exception { Key key = getPublicKey(publicKey); /** 得到Cipher对象来实现对源数据的RSA加密 / Cipher cipher = Cipher.getInstance(“RSA/ECB/PKCS1Padding”); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] b = source.getBytes(); /* 执行加密操作 */ byte[] b1 = cipher.doFinal(b); return new String(Base64.encodeBase64(b1), UTF-8); } public static PublicKey getPublicKey(String key) throws Exception { X509EncodedKeySpec keySpec = new X509EncodedKeySpec( Base64.decodeBase64(key.getBytes())); KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); PublicKey publicKey = keyFactory.generatePublic(keySpec); return publicKey; } 我该如何将java代码转为为node.js,运用Cipher加密,应该调哪个模块,求告知。
求助,用node.js对公钥进行"RSA/ECB/PKCS1Padding"算法加密,我该用哪个模块。
发布于 12 年前 作者 7725916 21745 次预览 最后一次回复是 9 年前 来自
8 回复
nodejs的标准加密模块是crytpo,支持的算法列表只包括aes/des等对称算法,不支持非对称算法rsa,具体可运行下面代码查看。
由已知私密钥匙生成公开钥匙这第一步crypto模块就被判了死刑,因此需要寻找第三方的nodejs模块,例如ursa。
你好,现在遇到了与你一样的问题,请问你是解决了吗,是怎么解决的?
请看这篇文章 《Nodejs开发加密货币》之十:三张图让你全面掌握加密解密技术 以及这篇 《Nodejs开发加密货币》之九:加密和验证 或许就够用了。
这个还是解决不了我的问题啊。那个RSA/ECB/PKCS1Padding对应的java里面的是什么样子的,有没有对照表一类的。
@weizhigang 都已经知道是pcks1,对应的就是pcks1啊, 如果无法互通,肯定是你哪里写错了
我这边现在那个公钥(key)是一个纯的字符串,然后加密的java代码如下: /** * 用公钥加密 * @param data 加密数据 * @param key 公钥 * @return 加密后的字节数组 * @throws Exception 异常 */ public static byte[] encryptByPublicKey(byte[] data, String key) throws Exception { byte[] encryptedData = null;
@weizhigang rsa非对称加密nodejs的crypto模块不支持的,需要用第三方的模块
@weizhigang node-rsa就行,最近刚弄过