0

特定のフィールド値を暗号化してDBに保存する必要があります。Ruby用のRSA暗号化を使用しました。暗号化して保存することはできましたが、復号化中に問題が発生しました。私がやったことは次のとおりです、

key_pair = RSA::KeyPair.generate(512)

key_pairを別の列に格納しました。

ciphertext = key_pair.encrypt("Hello, world!")

同じテーブルの別の列に暗号文を格納しました。

復号化中に、データベースからkey_pair値をフェッチし、復号化機能を適用しました

plaintext = key_pair.decrypt(ciphertext)

このステップはエラーをスローします

NoMethodError: undefined method `decrypt' for <String:0xa431b88>

「key_pair」は「RSA::KeyPair」のインスタンスではないためです。

保存された値を復号化しようとすると、データベースからkey_pair値をフェッチし、それに復号化メソッドを適用します。したがって、key_pair値にはStringクラスがあります。解決する方法が必要です。案内してください。

4

1 に答える 1

0

復号化する前に、次を試してください。

# get persisted value from DB; then
key_pair = RSA::KeyPair.new(your private key, your public key)

# and then decrypt
plaintext = key_pair.decrypt(ciphertext)
于 2013-01-19T11:57:23.857 に答える