暗号化された文字列に数字と文字のみが含まれるように、キーと iv を作成するにはどうすればよいですか。キー文字列と iv 文字列には 32 文字を含める必要があります。これを使用して暗号化した後、特殊文字を含む暗号化された文字列を取得します。これを回避するにはどうすればよいですか。
AES_Key=PSVJQRk9QTEpNVU1DWUZCRVFGV1VVT0ZOV1RRU1NaWQ=
Aes_iv=YWlFLVEZZUFNaWlhPQ01ZT0lLWU5HTFJQVFNCRUJZVA=
出力を 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) を使用して、元の出力に戻すことができます。