数据传输加密(DES) java实现

秘钥的生成:可以利用机器码生成秘钥。例如:IOS端在注册用户名密码的时候,同时将iPad的机器码保存在对应账户里(数据库里),这样当往指定iPad端传输数据的时候,就用保存在数据库中的此iPad机器码生成秘钥,而在iPad的程序里则直接调用此iPad机器码生成秘钥进行解密。

加密算法

/*
* @param encryptString 待加密的字符串
* @param encryptKey 生成秘钥的字符串,例如:机器码     
* @return 加密后的字符串
*/
public String encrypt(String encryptString,String encryptKey) throws Exception {         	
    SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(),"DES");
    Cipher cipher = Cipher.getInstance("DES");
    cipher.init(Cipher.ENCRYPT_MODE,key);//Cipher.ENCRYPT_MODE(加密标识)
    byte[] encryptedData = cipher.doFinal(encryptString.getBytes("UTF-8"));DES//加密   
    return Base64.encode(encryptedData);//Base64加密生成在Http协议中传输的字符串
} 

解密算法

/*
* @param decryptString 待解密的字符串
* @param decryptKey 生成秘钥的字符串,例如:机器码
* @return 解密后的字符串
*/ 
public String decrypt(String decryptString, String decryptKey) throws Exception {
     byte[] byteMi = Base64.decode(decryptString);
     SecretKeySpec key = new SecretKeySpec(decryptKey.getBytes(),"DES"); 
     Cipher cipher = Cipher.getInstance("DES");
     cipher.init(Cipher.DECRYPT_MODE,key);
     byte[] decryptData = cipher.doFinal(byteMi);
     return new String(decryptData);
}  

猜你喜欢

转载自jiang5769156.iteye.com/blog/1857166