0

暗号化された文字列に数字と文字のみが含まれるように、キーと iv を作成するにはどうすればよいですか。キー文字列と iv 文字列には 32 文字を含める必要があります。これを使用して暗号化した後、特殊文字を含む暗号化された文字列を取得します。これを回避するにはどうすればよいですか。

AES_Key=PSVJQRk9QTEpNVU1DWUZCRVFGV1VVT0ZOV1RRU1NaWQ=

Aes_iv=YWlFLVEZZUFNaWlhPQ01ZT0lLWU5HTFJQVFNCRUJZVA=

4

1 に答える 1

2

出力を Base64 でエンコードする必要があります。これにより、印刷可能なASCIIのみが保証され、暗号化されたデータを保存/送信するための標準になります。

キーと IV を完全にランダムにする必要があります。キーに特殊文字が含まれていないからといって、出力に特殊文字が含まれないわけではありません。絶対に相関関係はありません。キーのように見え、IVはbase64でエンコードされています。生のキーと IV を使用していることを確認してください。

これを C# で行う方法を次に示します。AES 出力がバイト配列であると仮定します。

        string encoded = System.Convert.ToBase64String(aesOutput);

文字列の場合:

        byte[] encodedBytes = System.Text.Encoding.ASCII.GetBytes(aesOutput);
        string base64encoded = System.Convert.ToBase64String(encodedBytes);

System.Convert.FromBase64String(encodedData) を使用して、元の出力に戻すことができます。

于 2012-04-25T16:44:49.437 に答える