RSA加密

GzLiotu 2015-03-06 03:22:47
只有一个密钥,能不能用java的RSA对字符串进行加密?请大虾帮忙。。。
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2015-03-11
  • 打赏
  • 举报
回复
使用公钥加密 public static byte[] encryptByPublicKey(byte[] data, byte[] keyBytes ) throws Exception { // 取得公钥 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); Key publicKey = keyFactory.generatePublic(x509KeySpec); // 对数据加密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(data); }
GzLiotu 2015-03-11
  • 打赏
  • 举报
回复
/** * 获取RSA加密信息 * @param info * @return */ public static String getRSAInfo(String dataStr){ byte[] en = encrypt(dataStr); String info = Base64.encode(en); try { info = URLEncoder.encode(info,"UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return info; } public static byte[] encrypt(String info) { try { byte[] modulusBytes = Base64.decode("yrEAJvQfhhoZcWMzsQw0LZd2OqOTMgOzVl7Ja2w6R1rF+tl+V+6T08zvZAhWye2omdZ8JccefDQNkYTqIcNXu9XqYMTl79FaFVt32wykCIHnvfN8IafVnQKcuWpWDuCbZAocoBisT6LWugyiXWe7cr+2qFSW4nL5YIQ4jxXJn8U="); byte[] exponentBytes = Base64.decode("AQAB"); BigInteger modulus = new BigInteger(1, modulusBytes); BigInteger exponent = new BigInteger(1, exponentBytes); RSAPublicKeySpec rsaPubKey = new RSAPublicKeySpec(modulus, exponent); KeyFactory fact = KeyFactory.getInstance("RSA"); PublicKey pubKey = fact.generatePublic(rsaPubKey); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, pubKey); byte[] cipherData = cipher.doFinal(new String(info).getBytes()); return cipherData; } catch (Exception e) { e.printStackTrace(); } return null; }
GzLiotu 2015-03-07
  • 打赏
  • 举报
回复
能说得清楚些吗?
tianfang 2015-03-06
  • 打赏
  • 举报
回复
加密的时候 需要对数据进行补齐,padding,要公开padding方法
GzLiotu 2015-03-06
  • 打赏
  • 举报
回复
嗯,只要加密就行了,还有RSA加密C#格式转java格式清不清楚?
tianfang 2015-03-06
  • 打赏
  • 举报
回复
RSA是密钥对,公钥+私钥,任何一个都可以加密,用另外一个解密。 你有一个可以加密,但就解不了了
  • 打赏
  • 举报
回复
可以的,网上找找案例

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧