TypechoJoeTheme

Clover 的博客

统计
登录
用户名
密码
/
注册
用户名
邮箱

CloverYou

日出于东却落于西,相识人海却散于席。

Java使用DES算法加密处理

2022-01-02
/
0 评论
/
114 阅读
/
正在检测是否收录...
01/02

定义所需要用到的变量

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);

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

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
朗读
赞(2)
版权属于:

Clover 的博客

本文链接:

https://www.ctong.top/index.php/archives/3/(转载时请注明本文出处及文章链接)

评论 (0)
CloverYou
日出于东却落于西,相识人海却散于席。
88 文章数
11 评论量
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 缓存一致性 - 点击领取
    2022-01-06
  2. 宝宝
    2022-01-02

标签云