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

しかし、ユーザー名を再び復号化する方法は? メソッドunsignまたはdecryptはありませんか? それとも、ここで何か不足していますか?

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 に答える