在android中如何使用Triple DES完成加密?是否有预定义的类可用?在android中加密
2
A
回答
1
这可能会或可能不会为你工作。 玩得开心,JAL
public BoolString tryEncrypt(String inString, String key){
boolean success= true;
String err="";
String outString="Encrypted"; // BoolString.value
try {
byte[] byteKey= key.getBytes("UTF8");
if (byteKey.length != 24) {
success= false;
err= "Key is "+byteKey.length+" bytes. Key must be exactly 24 bytes in length.";
throw new Exception(err); // could also return here
}
KeySpec ks= new DESedeKeySpec(byteKey);
SecretKeyFactory skf= SecretKeyFactory.getInstance("DESede");
SecretKey sk= skf.generateSecret(ks);
Cipher cph=Cipher.getInstance("DESede");
cph.init(Cipher.ENCRYPT_MODE, sk);
byte[] byteInString= inString.getBytes("UTF8");
byte[] byteEncoded= cph.doFinal(byteInString);
outString= Base64.encodeToString(byteEncoded, Base64.DEFAULT);
}
catch (UnsupportedEncodingException e){err="Unable to convert key to byte array."; success= false;}
catch (InvalidKeyException e){err="Unable to generate KeySpec from key";success= false;}
catch (NoSuchAlgorithmException e){err="Unable to find algorithm.";success= false;}
catch (InvalidKeySpecException e){err="Invalid Key Specification";success= false;}
catch (NoSuchPaddingException e){err="No such padding";success= false;}
catch (IllegalArgumentException e){err="Illegal argument";success= false;}
catch (Exception e){err=e.getMessage();success= false;}
return new BoolString(success,err,outString);
}
// a utility class to signal success or failure, return an error message, and return a useful String value
// see Try Out in C#
public final class BoolString {
public final boolean success;
public final String err;
public final String value;
public BoolString(boolean success, String err, String value){
this.success= success;
this.err= err;
this.value= value;
}
}
1
您需要指定“DESede”作为密码;见DESedeKeySpec和this example。
0
有一些可以用来加密任何类型的数据更加密算法。 我更喜欢使用AES(高级加密标准),原因很多。首先,它提供了更大的密钥大小,在创建加密应用程序之前,没有必须识别的弱和半弱密钥。此外,AES不容易受到其他理论攻击,例如差分密码分析等...
相关问题
- 1. 在android中加密解密
- 2. 在android中的Blowfish加密
- 3. PDF加密/解密在android中?
- 4. android中的加密
- 5. 在C#中加密加密#
- 6. 在Android中加密数据并使用AESCrypt在Ruby中解密
- 7. RSA - 在Android中加密/解密在PHP中
- 8. 在Android中加密文件,然后在PC中解密它
- 9. 如何在android中加密和解密密码
- 10. Android加密
- 11. 的Android - 加密
- 12. android加密
- 13. Android加密BadPaddingException
- 14. Android rc4加密
- 15. AES加密 - 在Android上存储密码
- 16. 加密python文件和解密在android
- 17. 在Android设备上加密
- 18. Android - 加密和解密
- 19. 加密/解密public/private android
- 20. Android - 加密和解密
- 21. Android AES加密密钥
- 22. 加密蟒蛇/解密android
- 23. 在Android中加密数据库文件
- 24. 在android中加密外部XML
- 25. 如何在Android中加密会话值
- 26. 在Android SDK中加密字符串
- 27. Java中的RSA BadPaddingException - 在Android中的加密解密JRE
- 28. Android的Sqlite加密
- 29. Android AES 128加密
- 30. android的sqlite加密
非常感谢! – cris 2011-02-05 22:55:49