博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超强壮的RSA加密Android短信
阅读量:6154 次
发布时间:2019-06-21

本文共 2779 字,大约阅读时间需要 9 分钟。

hot3.png

攀谈中请勿轻信汇款、中奖信息、生疏电话,勿运用外挂软件。 戴红帽的男孩 2013/3/3 16:05:15 北影三试放榜 直击现场“美人STYLE” 戴红帽的男孩 2013/3/4 15:45:55 http://photo.qq.com/cgi-bin/portal/cgi_portal_list_album?uin=123456  戴红帽的男孩 2013/3/4 16:00:20 http:/ http://www.powerkp.info/linked/20130308.do /www.qqxoo.com/main.html?qqid=123456  飘落的枫叶  11:05:50 package com; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.HashMap; import java.util.Map; import javax.crypto.Cipher; public class RSACoder { //算法 public static String Key_ALGORITHM="RSA"; //私钥 public static String Private_Key="RSAPrivateKey"; //公钥 public static String Public_Key="RSAPublicKey"; //密钥长度 public static int Key_Size=512; public static Map initKey() throws Exception{ //实例化密钥生成器 KeyPairGenerator keypairgenerator=KeyPairGenerator.getInstance(Key_ALGORITHM); //初始化 keypairgenerator.initialize(Key_Size); //取得密钥对 KeyPair keypair=keypairgenerator.generateKeyPair(); //密钥 RSAPrivateKey pritekey=(RSAPrivateKey)keypair.getPrivate(); //公钥 RSAPublicKey pubkey=(RSAPublicKey)keypair.getPublic(); Map keymap=new HashMap(2); keymap.put(Private_Key, pritekey); keymap.put(Public_Key, pubkey); return keymap; } //取得密钥 public static byte[] getPrivateKey(Mapkeymap){         Key pritekey=(Key)keymap.get(Private_Key);         return pritekey.getEncoded(); } //取得公钥 public static byte[] getPublicKey(Mapkeymap){  Key pubkey=(Key)keymap.get(Public_Key);  return pubkey.getEncoded(); } //私钥加密 public static byte[] encryptByPrivateKey(byte[] key,byte[] data) throws Exception{ //实例化密钥资料 PKCS8EncodedKeySpec pcs8spec=new PKCS8EncodedKeySpec(key); //实例化密钥工厂 KeyFactory keyfactory=KeyFactory.getInstance(Key_ALGORITHM); //生成私钥 PrivateKey pritekey=keyfactory.generatePrivate(pcs8spec); //私钥加密 Cipher cipher=Cipher.getInstance(pritekey.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE,pritekey); return cipher.doFinal(data); } //公钥解密 public static byte[] decryptByPublicKey(byte[] key,byte[] data) throws Exception{ //实例化公钥资料 X509EncodedKeySpec x509spec=new X509EncodedKeySpec(key); //实例化密钥工厂 KeyFactory keyfactory=KeyFactory.getInstance(Key_ALGORITHM); //取得公钥 PublicKey pubkey=keyfactory.generatePublic(x509spec); //对数据进行解密 Cipher cipher=Cipher.getInstance(Key_ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, pubkey); return cipher.doFinal(data); } } http://www.szhaoexport.com/linked/20130308.do

转载于:https://my.oschina.net/u/947963/blog/112603

你可能感兴趣的文章
java学习:jdbc连接示例
查看>>
Silverlight 如何手动打包xap
查看>>
建筑电气暖通给排水协作流程
查看>>
linux 编码转换
查看>>
POJ-2287 Tian Ji -- The Horse Racing 贪心规则在动态规划中的应用 Or 纯贪心
查看>>
Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月7日-1月14日)
查看>>
关于C#导出 文本文件
查看>>
分享:动态库的链接和链接选项-L,-rpath-link,-rpath
查看>>
Javascript一些小细节
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>