android中的加密傳輸

來源:互聯網
上載者:User

找到兩種密碼編譯演算法,一種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;     } }

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.