Jasypt 1.2发布,增强Hibernate加密支持(转载)

来源:互联网 发布:python 异常重试 编辑:程序博客网 时间:2024/06/06 20:51

 Jasypt 1.2已经发布,Jasypt是一个可以简化开发者对他们的项目包括密码摘要,text/binary加密,Hibernate加密和Spring安全集成的类库。 

    在Jasypt 1.2中,增加的新特性: 

    数字加密的支持 
    新的和更灵活的salt产生结构 
    重构和更容易使用的API 
    增强了Hibernate的集成 
    更容易配置 
    支持对新的数据类型:text,binaries的加密 
    重构和增强了Spring安全(ACEGI)集成 
    更新的文档 

    Jasypt的主要特性: 

    Jasypt遵循RSA标准提供单向和双向的加密技术 
    对用户的密码更安全的保护 
    二进制加密支持,Jasypt可以根据需要加密对象或文件 
    数字加密支持,除了text和binaries,Jasypt也可以分类和数字值的加密(BigInteger,BigDecimal或其他类型) 
    支持Hibernate持久化加密 
    安全的线程 
    提供非配置的加密工具和灵活的配置 
    在Hibernate映射文件中定义域的加密 
    无缝的与Spring应用程序集成 
    Spring安全(Acegi Security)选项集成适合执行密码加密和匹配任务,通过使用安全的密码加密机制和提供更高 
    程度的配置和控制从而提高了用户密码的安全性 
    javadoc文档更容易理解

    使用Jasypt,加密和检查密码非常容易:  

 

BasicPasswordEncryptor passwordEncryptor = new BasicPasswordEncryptor();
String encryptedPassword 
= passwordEncryptor.encryptPassword(userPassword);
...
if (passwordEncryptor.checkPassword(inputPassword, encryptedPassword)) ...{
  
// correct!
}
 else ...{
  
// bad login!
}

加密和解密文本

 

BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword(myEncryptionPassword);
String myEncryptedText 
= textEncryptor.encrypt(myText);
...
String plainText 
= textEncryptor.decrypt(myEncryptedText);

从Hibernate中加密一些敏感的数据

 

<class name="Employee" table="EMPLOYEE">
  ...
  
<property name="address" column="ADDRESS" type="encryptedString" />
  
<property name="salary" column="SALARY" type="encryptedDecimal" />
  ...
<class>