记录用
学习资料来源:http://www.jianshu.com/p/b2d9f84054d4
代码:
package com.example.yangjie.jpushtest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class MainActivity extends AppCompatActivity {
String KEY = "63240000"; //DES秘钥长度必须是8位
String KEY_ALGORITHM = "DES"; // 秘钥算法
String CIPHER_ALGORITHM = "DES/ECB/PKCS5Padding"; // 加密算法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String data = "加密数据";
String encodeData = encode(data);
String decodeData = decode(encodeData);
System.out.println(data);
System.out.println(encodeData);
System.out.println(decodeData);
}
// 加密
private String encode(String data) {
// 秘钥 参数:1.key的byte 2.加密算法
SecretKey secretKey = new SecretKeySpec(KEY.getBytes(), KEY_ALGORITHM);
// 密码实例
try {
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] result = cipher.doFinal(data.getBytes());
return Base64.encodeToString(result, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// 解密
private String decode(String data) {
byte[] result = Base64.decode(data, Base64.DEFAULT);
SecretKey secretKey = new SecretKeySpec(KEY.getBytes(), KEY_ALGORITHM);
try {
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
return new String(cipher.doFinal(result));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
预期结果:
I/System.out: 加密数据
I/System.out: KknEFGFXFbnPjnaNb8FmpA==
I/System.out: 加密数据