0
나는 RijndaelManaged 알고리즘의 암호화/암호 해독 작업을하고 있습니다.암호화/해독이 Base-64 문자열에 유효하지 않은 문자를 제공합니다.
GUID를 암호화하는 동안 암호화 된 알고리즘의 중간에 "%"기호가 표시됩니다. 암호화 된 GUI를 해독 할 때 "Base-64 문자열에 유효하지 않은 문자가 있습니다."오류가 발생합니다. 이는 암호화 된 토큰에 % 기호가 있기 때문에 발생합니다. 여기
는using System;
using System.Configuration;
using System.IO;
using System.Security.Cryptography;
public class ABC_RMCryptography
{
public string Decrypt(string strValueIn)
{
try
{
byte[] arrB = System.Convert.FromBase64String(strValueIn);
string strRC;
byte[] key = System.Convert.FromBase64String(ConfigurationManager.AppSettings["TokenEncryptionKey"]);
byte[] IV = System.Convert.FromBase64String(ConfigurationManager.AppSettings["TokenEncryptionVector"]);
MemoryStream memStream = new MemoryStream(arrB);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream CryptStream = new CryptoStream(memStream, RMCrypto.CreateDecryptor(key, IV), CryptoStreamMode.Read);
StreamReader SReader = new StreamReader(CryptStream);
strRC = SReader.ReadToEnd();
SReader.Close();
return strRC;
}
catch (Exception ex)
{
throw ex;
}
}
public string Encrypt(string strValue)
{
MemoryStream memStream = new MemoryStream();
try
{
byte[] key = System.Convert.FromBase64String(ConfigurationManager.AppSettings["TokenEncryptionKey"]);
byte[] IV = System.Convert.FromBase64String(ConfigurationManager.AppSettings["TokenEncryptionVector"]);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream CryptStream = new CryptoStream(memStream, RMCrypto.CreateEncryptor(key, IV), CryptoStreamMode.Write);
StreamWriter SWriter = new StreamWriter(CryptStream);
SWriter.Write(strValue);
SWriter.Close();
CryptStream.Close();
byte[] b = memStream.ToArray();
return Convert.ToBase64String(b);
}
catch (Exception ex)
{
throw ex;
}
}
private string GenerateRMKey()
{
RijndaelManaged objRM = new RijndaelManaged();
objRM.GenerateKey();
return Convert.ToBase64String(objRM.Key);
}
private string GenerateRMIV()
{
RijndaelManaged objRM = new RijndaelManaged();
objRM.GenerateKey();
return Convert.ToBase64String(objRM.IV);
}
}
날이 예외를 피하기 위해 해결책을 알려 주시기 바랍니다, 암호화 및 암호 해독에 대한 코드입니다. % 기호는 어떻게 피합니까?/복호화
암호화 정확히이 %에서오고있는 자료-64 문자열