RSAで小さな文字列でファイルを暗号化および復号化しようとしています。 文字列を暗号化した後、プログラムはファイルの秘密鍵と暗号化されたテキストに書き込みます。RSA復号化エラー
暗号化するためのコード:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(4096);
string pub = rsa.ToXmlString(false);
string priv = rsa.ToXmlString(true);
string to_crypt = "Hello world, try to crypt me";
byte[] dataToEncrypt = Encoding.ASCII.GetBytes(to_crypt);
rsa.FromXmlString(pub);
dataToEncrypt = rsa.Encrypt(dataToEncrypt, false);
string s = System.Text.Encoding.UTF8.GetString(dataToEncrypt, 0, dataToEncrypt.Length);
WriteFile("crypt", priv+s);
別のプログラムは、配列内のテキストを読み取り、解読しようとします:
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(4096))
{
byte[] to_decrypt = File.ReadAllBytes(args[0]);
byte[] key = new byte[3219];
byte[] text = new byte[to_decrypt.Length - key.Length];
Buffer.BlockCopy(to_decrypt, 0, key, 0, key.Length);
Buffer.BlockCopy(to_decrypt, key.Length, text, 0, text.Length);
string skey = System.Text.Encoding.UTF8.GetString(key, 0, key.Length);
rsa.FromXmlString(skey);
rsa.Decrypt(text, false); <---- Error: Bad data
...
私はエラーを持っている:
CryptographicException:Bad data
私はミスを犯しましたテキスト配列?アレイのサイズが間違っていますか?
あなたも暗号化コードを投稿する必要があります –