0

xmlファイルを文字列に暗号化して、サービスを介して転送できるようにしようとしています。送信は、コードにコンパイルされた対称キーを使用してサーバーからサーバーに行われます。

私はMSDNのAESサンプルを使用していて、バイトarryを次のような文字列との間で変換しています。

    ' Encrypt the string to an array of bytes.
    Dim encrypted As Byte() = crypto.EncryptString(original, _key, _iv)

    Dim encrypStr As String = Encoding.Unicode.GetString(encrypted)
    '''' >>> Transmit...
    Dim postTrans As Byte() = Encoding.Unicode.GetBytes(encrypStr)

    ' Decrypt the bytes to a string.
    Dim roundtrip As String = crypto.DecryptString(postTrans, _key, _iv)

真ん中の2行がないと、暗号化/復号化は正常に機能します。真ん中の2行が含まれていると、解析できない不正な形式のxmlドキュメントを受け取るか、「パディングが無効で削除できません」というエラーが表示されます。

これは文字列暗号化の良い方法ではありませんか?byte()をstringadbackに変換しなくても完全に機能します。

4

1 に答える 1

1

Encoding.GetString()を使用しないでください。常に機能するとは限りません。ToBase64()を使用する

答えてくれたヘンク・ホルターマンに感謝します。

于 2012-06-29T10:31:01.327 に答える