Play Framework 2.0 提供 lib Crypto,见代码:https ://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/libs/Crypto.scala
因此,如果要签署一个值,我可以使用:
Crypto.sign(username);
但是如何再次解密用户名?没有方法unsign或decrypt吗?或者我在这里错过了什么?
Play Framework 2.0 提供 lib Crypto,见代码:https ://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/libs/Crypto.scala
因此,如果要签署一个值,我可以使用:
Crypto.sign(username);
但是如何再次解密用户名?没有方法unsign或decrypt吗?或者我在这里错过了什么?
该 API 用于创建签名、SHA1 哈希(如您在链接到的代码中所见)。这样做的目的不是可逆的(未签名),而是用作验证真实性。
例如,如果您签署了身份验证令牌,则可以通过检查Crypto.sign(token) == tokenSignature
.
如果要加密和解密,请查看Crypto.encryptAES
/ Crypto.decryptAES
(在 Play 2.1 中添加)。
你到底想做什么?您只需签署一个值以确保它没有被更改。关键是您不能轻易“取消签名”它。
如果你想在你的应用程序中加密和解密一个值,你必须使用来自javax.crypto
.
如果您需要加密/解密功能,您可以尝试添加http://www.jasypt.org/。
org.jasypt.util.text.BasicTextEncryptor 允许用户使用正常强度算法加密和解密文本数据。为了能够加密和解密。
比你可以做这样的事情:
...
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword(myEncryptionPassword);
...
String myEncryptedText = textEncryptor.encrypt(myText);
String plainText = textEncryptor.decrypt(myEncryptedText);
...