基于口令的加密解密实现

本文介绍了一种利用SHA1进行密钥散列并结合DES算法实现数据加密和解密的方法。通过具体步骤展示了如何生成密钥、设置初始化向量以及使用CBC模式的DES算法进行数据的安全处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加密:
	        // 创建SHA1散列对象
MessageDigest md = MessageDigest.getInstance("SHA1");
// 散列密钥
md.update(password.getBytes());
// 获得DES密钥
DESKeySpec dks = new DESKeySpec(md.digest());
// 获得DES加密密钥工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
// 生成加密密钥
SecretKey key = keyFactory.generateSecret(dks);
// 创建初始化向量对象
IvParameterSpec iv = new IvParameterSpec(Decrypt.IV_8);
AlgorithmParameterSpec paramSpec = iv;
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "BC");
cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
byte[] res = cipher.doFinal(srcMessage.getBytes());

解密:
	        // 创建SHA1散列对象
MessageDigest md = MessageDigest.getInstance("SHA1");
// 散列密钥
md.update(password.getBytes());
// 获得DES密钥
DESKeySpec dks = new DESKeySpec(md.digest());
// 获得DES加密密钥工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
// 生成加密密钥
SecretKey key = keyFactory.generateSecret(dks);
// 创建初始化向量对象
IvParameterSpec iv = new IvParameterSpec(Decrypt.IV_8);
AlgorithmParameterSpec paramSpec = iv;

//PBEParameterSpec pbeSpec = new PBEParameterSpec(IV_8,1);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "BC");
cipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
byte[] res = cipher.doFinal(Base64.decode(encMessage.getBytes()));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值