android中的加密传输
来源:互联网 发布:网络巫师泰剧中字3 编辑:程序博客网 时间:2024/05/23 13:02
找到两种加密算法,一种MD5加密,适用于密码加密,因为这种算法不可逆;还有一种是RSA加密,这种加密是可逆的:
一、MD5加密
import java.security.MessageDigest; public class MD5 { private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; /** * 转换字节数组为16进制字串 * * @param b * 字节数组 * @return 16进制字串 */ public static String byteArrayToHexString(byte[] b) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) { resultSb.append(byteToHexString(b[i])); } return resultSb.toString(); } private static String byteToHexString(byte b) { int n = b; if (n < 0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexDigits[d1] + hexDigits[d2]; } public static String MD5Encode(String origin) { String resultString = null; try { resultString = new String(origin); MessageDigest md = MessageDigest.getInstance("MD5"); resultString = byteArrayToHexString(md.digest(resultString .getBytes())); } catch (Exception ex) { } return resultString; } }
二、RSA加密
import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import javax.crypto.Cipher; /** * RSAEncrypt * * @author chen * @see */ public class Rsaencrype { /** * Main method for RSAEncrypt. * @param args */ public static void main(String[] args) { try { Rsaencrype encrypt = new Rsaencrype(); String encryptText = "encryptText"; KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); // Generate keys RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes()); byte[] de = encrypt.decrypt(privateKey,e); System.out.println(encrypt.bytesToString(e)); System.out.println(encrypt.bytesToString(de)); } catch (Exception e) { e.printStackTrace(); } } /** * Change byte array to String. * @return byte[] */ protected String bytesToString(byte[] encrytpByte) { String result = ""; for (Byte bytes : encrytpByte) { result += (char) bytes.intValue(); } return result; } /** * Encrypt String. * @return byte[] */ protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) { if (publicKey != null) { try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(obj); } catch (Exception e) { e.printStackTrace(); } } return null; } /** * Basic decrypt method * @return byte[] */ protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) { if (privateKey != null) { try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(obj); } catch (Exception e) { e.printStackTrace(); } } return null; } }
- android中的加密传输
- Android网络传输加密
- Android网络传输中的加密算法:MD5加密方法
- Android网络数据加密传输
- Android https网络加密传输
- Android中的视频传输
- Android传输数据时加密详解
- Android传输数据时加密详解
- Android传输数据时加密详解
- Android 网络传输 加密与验证
- Android中的MD5加密
- Android中的MD5加密
- Android中的MD5加密
- Android中的MD5加密
- Android中的加密技术
- Android中的md5加密
- Android中的AES加密
- Android中的AES256加密
- C语言和设计模式(备忘录模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- Tinyxml的嵌入式Linux实现
- 今日装系统
- 时隔一年,生活有怎样的变化?
- 开发管理 CheckLists(10) -开发准备列表
- android中的加密传输
- Android平台下基于XMPP的IM研究
- 为什么index fast full scan会扫描segment header,index full scan 不扫描 segment header
- CSU/DSU
- Pattern Design--Bridge
- c语言中的符号优先级
- Android - ImageButton单击切换按钮图片效果的实现
- linux下 firefox安装flash插件
- Oracle中varchar()与varchar2()的区别