| 关键词: 加密 encryptor privateData Jasypt String 多核 BasicTextEncrypt textEncryptor 密码 |
简介Jasypt是一个java库,它允许开发人员以最少的工作量为项目添加基本的加密功能,而无需深入了解密码学的工作原理。它具有一下特点:
简单加密要使用简单的算法执行加密和解密,我们可以使用Jasypt库中BasicTextEncryptor 类: BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); 然后我们可以使用encrypt()方法加密纯文本: String myEncryptedText = textEncryptor.encrypt(privateData); 如果我们想要将数据解密回纯文本,我们可以使用decrypt()方法: tring plainText = textEncryptor.decrypt(myEncryptedText); 单向加密一般在做用户认证的时候,传统上我们通常会使用MD5做简单的密码加密,然后登录时必须MD5值实现。同样的需求,我们也可以使用Jasypt来实现,并且可以自定义自己的密钥。 我们可以使用BasicPasswordEncryptor类来执行单向加密: String password = "secret-pass"; 然后,我们可以将已加密的密码与执行登录过程的用户密码进行比较,而无需解密已存储在数据库中的密码: boolean result = passwordEncryptor.checkPassword("secret-pass",encryptedPassword);配置加密算法我们可以使用更安全、更强大的加密算法,但我们需要为我们的JVM 安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files 在Jasypt中,我们可以使用StandardPBEStringEncryptor类来使用强加密,并使用setAlgorithm()方法对其进行自定义: StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 我们将加密算法设置为PBEWithMD5AndTripleDES。 接下来,加密和解密过程与使用BasicTextEncryptor类的前一个过程相同: String encryptedText = encryptor.encrypt(privateData); 使用多线程解密当我们在多核机器上运行时,我们希望并行处理解密处理。为了获得良好的性能,我们可以使用PooledPBEStringEncryptor 和setPoolSize() API来创建一个解密线程池。它们中的每一个都可以由不同的线程并行使用: PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); 最好将池大小设置为等于机器的核心数。加密和解密的代码与以前的代码相同。 集成最后一点快速说明,Jasypt库可以与许多其他库集成,包括Spring Framework,我们只需要创建一个配置来为Spring应用程序添加加密支持。如果我们想将敏感数据存储到数据库中并且我们使用Hibernate作为数据访问框架,我们也可以将Jasypt与它集成。 手册地址http://www.jasypt.org/ 总结总体上来说,jasypt还是一个比较方便而且能够快速上手的加密工具包,你们怎么看呢? |
| 本文出处: https://www.toutiao.com/a6694982971071398407/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|