Java使用DES算法加密处理

定义所需要用到的变量

private static final String ENCRYPTION_KEY = "HI, I'M UPYOU.";
private static final String CHARSET_NAME = "UTF-8";
private static final String ALGORITHM_NAME = "DES";
private static Key key;

ENCRYPTION_KEY作为一个加密密钥,将ENCRYPTION_KEY转成Key类型。

static {
    try {
        // 生成 ALGORITHM_NAME 算法对象
        KeyGenerator edsAlgorithmInstance = KeyGenerator.getInstance(ALGORITHM_NAME);
        // 使用SHA1安全策略
        SecureRandom sha1PRNG = SecureRandom.getInstance("SHA1PRNG");
        // 设置密钥 ENCRYPTION_KEY
        sha1PRNG.setSeed(ENCRYPTION_KEY.getBytes());
        // 初始化KeyGenerator对象
        edsAlgorithmInstance.init(sha1PRNG);
        //生成 key
        key = edsAlgorithmInstance.generateKey();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}

创建对字符串加密方法 encrypetString

public static String encryptString(){}

encrypetString方法中操作

需要使用BASE64Encoder将加密后的结果转成 String

BASE64Encoder base64Encoder = new BASE64Encoder();

得到待加密字符串基于CHARSET_NAME编码的byte[]

byte[] bytes = str.getBytes(CHARSET_NAME);

创建基于ALGORITHM_NAME的加密算法

Cipher cipher = Cipher.getInstance(ALGORITHM_NAME);

初始化加密设置,使用无三参初始化方式。
image.png

cipher.init(Cipher.ENCRYPT_MODE, key);

将密码进行加密,此处返回的是加密后的byte[]对象

byte[] doFinal = cipher.doFinal(bytes);

使用 BASE64Encoder 将加密结果转成 String 后返回

return base64Encoder.encode(doFinal);
public static String encryptString(String str){
    //基于BASE64编码,接收byte[]并转换成String
    BASE64Encoder base64Encoder = new BASE64Encoder();
    try {
        // 按UTF8编码
        byte[] bytes = str.getBytes(CHARSET_NAME);
        // 获取加密对象
        Cipher cipher = Cipher.getInstance(ALGORITHM_NAME);
        // 初始化密码信息
        cipher.init(Cipher.ENCRYPT_MODE, key);
        // 加密
        byte[] doFinal = cipher.doFinal(bytes);
        // byte[]to encode好的String并返回
        return base64Encoder.encode(doFinal);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
# Java 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×