6

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);

但是如何再次解密用户名?没有方法unsigndecrypt吗?或者我在这里错过了什么?

4

3 回答 3

6

该 API 用于创建签名、SHA1 哈希(如您在链接到的代码中所见)。这样做的目的不是可逆的(未签名),而是用作验证真实性。

例如,如果您签署了身份验证令牌,则可以通过检查Crypto.sign(token) == tokenSignature.

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

于 2012-04-16T11:01:07.457 回答
1

你到底想做什么?您只需签署一个值以确保它没有被更改。关键是您不能轻易“取消签名”它。

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

于 2012-04-14T18:35:54.373 回答
1

如果您需要加密/解密功能,您可以尝试添加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);
... 
于 2012-04-18T12:02:19.423 回答