DES加密

来源:互联网 发布:六韬淘宝天猫托管 编辑:程序博客网 时间:2024/05/21 07:01

记录用

学习资料来源: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: 加密数据
0 0
原创粉丝点击