android中的加密传输

找到两种加密算法,一种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,加密,exception,String,import,byte)