PBEWithMD5AndDES算法

问题?PBEWithMD5AndDES算法

一、算法的比较

对于像对url中的参数进行加密或者get提交方法的加密过程,我不建议使用rsa或者是三重des这样的加密算法,主要原因在于性能和速度会受影响。

(1)我建议大家使用对称加密如:DES或者是PBE算法。
(2)我们在这边就使用PBEWithMD5AndDES来实现加密。(因为本人只会这一种,有种知识到用时方恨少的感觉快哭了

MD5第三方jar包及本人写的MD5算法工具类案例下载地址:点击下载链接

二、PBE算法加密原理

对于一个纯文本,加密后它会变成一堆乱码,这堆乱码包括了许多非法字符,我们不希望把这些字符放入bean中,因此在加密完后,我们还要对加密结果进行base64编码
PBE从字面上理解,它必须使用一个口令,我们不希望我们的加密过于复杂而影响页面跳转的速度,因此我们不采用口令+KEY的形式,我们这边的口令就是我们的KEY。

Base64加密解密第三方jar包及案例下载:点击下载链接


1.加密过程实现如下:
输入口令(KEY)——>加密文本——>以base64对加密后的结果进行编码——>以加载算法类编码成浏览器可以识别的形式——>传输给接受的action


2.解密过程如下:
接受的action得到参数——>以base64对结果进行解码——>得到纯加密文本——>解密——>得到解密后的值——>

进行操作,不过一般情况下,我用PBE算法用来加密账号密码的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PBEWITHMD5andDES算法是一种基于口令的加密算法,它使用MD5和DES算法进行加密。下面是一个使用PBEWITHMD5andDES算法进行加密的示例: ```java import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.KeySpec; public class PBEDemo { public static void main(String[] args) throws Exception { String password = "mypassword"; String plaintext = "Hello, world!"; // 生成随机盐值 byte[] salt = new byte[8]; SecureRandom random = new SecureRandom(); random.nextBytes(salt); // 创建PBE密钥 KeySpec keySpec = new PBEKeySpec(password.toCharArray()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWITHMD5andDES"); SecretKey secretKey = keyFactory.generateSecret(keySpec); // 创建PBE参数 AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, 1000); // 创建加密器 Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey, paramSpec); // 加密数据 byte[] ciphertext = cipher.doFinal(plaintext.getBytes()); System.out.println("Plaintext: " + plaintext); System.out.println("Ciphertext: " + Base64.getEncoder().encodeToString(ciphertext)); } } ``` 这个示例中,我们使用了Java的加密库来实现PBEWITHMD5andDES算法的加密。首先,我们生成一个随机的盐值,然后使用口令生成PBE密钥。接下来,我们创建PBE参数,并使用密钥和参数初始化加密器。最后,我们使用加密器对明文进行加密,并输出密文。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值