import java.security.Key;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESedeKeySpec;import javax.crypto.spec.IvParameterSpec;import android.util.Base64;public class Des3 {public Des3() throws Exception {//密钥byte[] key=Base64.decode("12345678901234567890123456789000", Base64.DEFAULT);byte[] keyiv = { 1, 2, 3, 4, 5, 6, 7, 8 };//原始数据String mainStr = "达达ABCacb123";//原始数据转bytebyte[] data = mainStr.getBytes("UTF-8");System.out.println("原始数据:" + mainStr);System.out.println("ECB加密解密");//加密后的byte[]byte[] encodeByte_ECB = des3EncodeECB(key, data);//加密后的String   需把加密的byte[]转base64String encodeString_ECB =Base64.encodeToString(encodeByte_ECB, Base64.DEFAULT);System.out.println("加密的数据是:" + encodeString_ECB);//解密后的原始byte[] 需把加密后的byte[]转bass64byte[] decodeByteMain_ECB=Base64.decode(encodeString_ECB, Base64.DEFAULT);//解密后的byte[]byte[] decodeByte_ECB = ees3DecodeECB(key, decodeByteMain_ECB);//解密后的StringString decodeString_ECB = new String(decodeByte_ECB, "UTF-8");System.out.println("解密后的数据是:" + decodeString_ECB);System.out.println("CBC加密解密");//加密后的byte[]byte[] encodeByte_CBC = des3EncodeCBC(key, keyiv,data);//加密后的String   需把加密的byte[]转base64String encodeString_CBC =Base64.encodeToString(encodeByte_CBC, Base64.DEFAULT);System.out.println("加密的数据是:" + encodeString_CBC);//解密后的原始byte[] 需把加密后的byte[]转bass64byte[] decodeByteMain_CBC=Base64.decode(encodeString_CBC, Base64.DEFAULT);//解密后的byte[]byte[] decodeByte_CBC = des3DecodeCBC(key, keyiv, decodeByteMain_CBC);//解密后的StringString decodeString_CBC = new String(decodeByte_CBC, "UTF-8");System.out.println("解密后的数据是:" + decodeString_CBC);}public static byte[] des3EncodeECB(byte[] key, byte[] data)throws Exception {Key deskey = null;DESedeKeySpec spec = new DESedeKeySpec(key);SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");deskey = keyfactory.generateSecret(spec);Cipher cipher = Cipher.getInstance("desede" + "/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, deskey);byte[] bOut = cipher.doFinal(data);return bOut;}public static byte[] ees3DecodeECB(byte[] key, byte[] data)throws Exception {Key deskey = null;DESedeKeySpec spec = new DESedeKeySpec(key);SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");deskey = keyfactory.generateSecret(spec);Cipher cipher = Cipher.getInstance("desede" + "/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, deskey);byte[] bOut = cipher.doFinal(data);return bOut;}    public static byte[] des3EncodeCBC(byte[] key, byte[] keyiv, byte[] data)            throws Exception {        Key deskey = null;        DESedeKeySpec spec = new DESedeKeySpec(key);        SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");        deskey = keyfactory.generateSecret(spec);        Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding");        IvParameterSpec ips = new IvParameterSpec(keyiv);        cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);        byte[] bOut = cipher.doFinal(data);        return bOut;    }       public static byte[] des3DecodeCBC(byte[] key, byte[] keyiv, byte[] data)            throws Exception {        Key deskey = null;        DESedeKeySpec spec = new DESedeKeySpec(key);        SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");        deskey = keyfactory.generateSecret(spec);        Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding");        IvParameterSpec ips = new IvParameterSpec(keyiv);        cipher.init(Cipher.DECRYPT_MODE, deskey, ips);        byte[] bOut = cipher.doFinal(data);        return bOut;    }}


转载自:http://blog.sina.com.cn/s/blog_677fb16e01018eqw.html

更多相关文章

  1. Android 读取网络数据
  2. Android中数据库升级
  3. android直接读取数据库文件
  4. android listview无限循环显示数据
  5. android 加密数据库
  6. android 数据库
  7. Android SQLite数据库实例
  8. 如何在android中使用你自己的数据文件
  9. android之SQlite创建数据库操作

随机推荐

  1. Android调起高德地图
  2. Android(安卓)Timer的用法示例
  3. 自定义控件--虚线
  4. Android(安卓)代码设置来电铃声
  5. Android(安卓)7.1.2(Android(安卓)N) Act
  6. Android在WebView上构建Web应用程序
  7. eclipse ADT在线安装 https://dl-ssl.goo
  8. Android(安卓)App 权限一点知识
  9. android 自定义控件(邮箱边写边出格式邮箱
  10. Most Popular Android(安卓)Downloads Of