Playframework 2.0 用密码解密字符串

Playframework 2.0 用密码解密字符串,playframework-2.0,Playframework 2.0,Play Framework 2.0提供了lib加密,请参见代码: 因此,如果要签署一个值,我可以使用: Crypto.sign(username); 但是如何再次解密用户名呢?没有方法unsign或decrypt?还是我遗漏了什么?你到底想做什么?您只需对值进行签名,以确保其未被更改。关键是你不能轻易地取消签名 如果你想在你的应用程序中加密和解密一个值,你必须使用来自的加密算法。API用于创建一个签名,一个SHA1哈希(你可以在链接到的代码中看到)。其目的不是可逆(未签名),而是用于验证真实

Play Framework 2.0提供了lib加密,请参见代码:

因此,如果要签署一个值,我可以使用:

Crypto.sign(username);

但是如何再次解密用户名呢?没有方法unsigndecrypt?还是我遗漏了什么?

你到底想做什么?您只需对值进行签名,以确保其未被更改。关键是你不能轻易地取消签名


如果你想在你的应用程序中加密和解密一个值,你必须使用来自的加密算法。

API用于创建一个签名,一个SHA1哈希(你可以在链接到的代码中看到)。其目的不是可逆(未签名),而是用于验证真实性

例如,如果您对身份验证令牌进行了签名,则可以通过检查
Crypto.sign(token)=tokenSignature
来确保该令牌未被篡改


如果您想要加密和解密,请查看
Crypto.encryptAES
/
Crypto.decryptAES
(在播放2.1中添加)。

如果您需要加密/解密功能,可以尝试添加

org.jasypt.util.text.BasictExtencCryptor允许用户使用普通强度算法加密和解密文本数据。为了能够加密和解密

然后你可以这样做:

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

谢谢你的时间,我想解密用户名和密码,并在发挥!1.2.4我已经为此使用了加密类。。然后在请求时我想显示用户名和密码,所以我需要再次解密它。但是我知道我需要使用额外的类来达到这个目的…是的,我确实遇到了这个:-)。我将尝试在我的项目中使用它,感谢大家的分享。我不会使用jasypt,因为它发明了自己的加密:它的好处是什么,我们还可以通过
myString=password
检查。请注意,crypto.encryptAES很容易受到可塑性攻击,除非它与MAC结合进行身份验证,因为它使用AES-CTR。您可能需要的是AES-GCM
Crypto
将在2.5.x中被弃用,并且有一个迁移指南可用于迁移: