加密:
解密:
// 创建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()));
使用SHA1与DES实现加解密
本文介绍了一种利用SHA1进行密钥散列并结合DES算法实现数据加密和解密的方法。通过具体步骤展示了如何生成密钥、设置初始化向量以及使用CBC模式的DES算法进行数据的安全处理。
375

被折叠的 条评论
为什么被折叠?



