找到两种加密算法,一种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;     } }


更多相关文章

  1. Android(安卓)使用AES/CBC/PKCS7Padding 加解密字符串
  2. android JNI RSA 3DES BASE64 加解密实现
  3. Android的本地Json解析
  4. android android.support.v4.util.Pools 源码解析
  5. Android(安卓)数据加密方法 AES DES RSA AndroidKeyStore
  6. Android中UDP发送报文
  7. Android(安卓)指纹识别(Touch ID)实例
  8. 关于AES在Android和JAVA上加密解密不能对应的问题
  9. 【Android】LitePal安装和使用

随机推荐

  1. Android相对布局
  2. (转帖)Android系列之浅谈Android(安卓)3D旋
  3. android 流量统计实现思路
  4. android的selector,背景选择器
  5. android Handler 机制研究学习笔记
  6. android中国风笔记源码,金鱼游动动画源码
  7. 使用Vitamio打造自己的Android万能播放器
  8. Android原生(Native)C开发之二 framebuff
  9. 【Android(安卓)开发】:UI控件之拖动条控
  10. Android(安卓)面试题(2)