SharpAESCrypt 加密和解密字符串
SharpAESCrypt Encrypting and Decrypting strings
我有一个需要实施的要求 cross platform encryption and decryption
。
所以,我做了一些谷歌搜索并找到了这个 link
所以,我计划使用 SharpAESCrypt
并使用它的最新版本 1.3.1
。
现在,我的问题是:我可以通过转换为流来加密字符串,但无法使用相同的密码将其解密。
我找到了一些代码 并实现了相同的代码。
我的示例代码:
加密
protected void btnEncrypt_Click(object sender, EventArgs e)
{
try
{
byte[] byteArray = Encoding.UTF8.GetBytes(txtInput.Text.Trim());
Byte[] newByteArray;
using (MemoryStream plainText = new MemoryStream(byteArray))
{
using (MemoryStream encryptedData = new MemoryStream())
{
SharpAESCrypt.SharpAESCrypt.Encrypt("ABCD@123", plainText, encryptedData);
newByteArray = encryptedData.ToArray();
}
}
string FinalText = Convert.ToBase64String(newByteArray);
}
catch (Exception ex)
{
}
}
解密
protected void btnDecrypt_Click(object sender, EventArgs e)
{
try
{
byte[] byteArray = Encoding.UTF8.GetBytes(txtOutput.Text.Trim());
Byte[] newByteArray;
string output = "";
using (MemoryStream plainText = new MemoryStream(byteArray))
{
using (MemoryStream encryptedData = new MemoryStream())
{
SharpAESCrypt.SharpAESCrypt.Decrypt("ABCD@123", plainText, encryptedData);
newByteArray = encryptedData.ToArray();
}
}
//string FinalText = Convert.ToBase64String(newByteArray);
string FinalText = System.Text.Encoding.UTF8.GetString(byteArray);
}
catch (Exception ex)
{
}
}
我收到类似 Invalid header marker
的错误。谁能告诉我我做错了什么?
注意:需要一些关于可用的最佳跨平台(iOS、Android 和 C#)加密和解密库的建议。
在 Decrypt 方法中,您需要使用 Convert.FromBase64String 而非 Encoding 来重构加密的字节数组。UTF8.GetBytes。您使用 UTF8 重构解密字符串的最后一部分是正确的。
我有一个需要实施的要求 cross platform encryption and decryption
。
所以,我做了一些谷歌搜索并找到了这个 link
所以,我计划使用 SharpAESCrypt
并使用它的最新版本 1.3.1
。
现在,我的问题是:我可以通过转换为流来加密字符串,但无法使用相同的密码将其解密。
我找到了一些代码
我的示例代码:
加密
protected void btnEncrypt_Click(object sender, EventArgs e)
{
try
{
byte[] byteArray = Encoding.UTF8.GetBytes(txtInput.Text.Trim());
Byte[] newByteArray;
using (MemoryStream plainText = new MemoryStream(byteArray))
{
using (MemoryStream encryptedData = new MemoryStream())
{
SharpAESCrypt.SharpAESCrypt.Encrypt("ABCD@123", plainText, encryptedData);
newByteArray = encryptedData.ToArray();
}
}
string FinalText = Convert.ToBase64String(newByteArray);
}
catch (Exception ex)
{
}
}
解密
protected void btnDecrypt_Click(object sender, EventArgs e)
{
try
{
byte[] byteArray = Encoding.UTF8.GetBytes(txtOutput.Text.Trim());
Byte[] newByteArray;
string output = "";
using (MemoryStream plainText = new MemoryStream(byteArray))
{
using (MemoryStream encryptedData = new MemoryStream())
{
SharpAESCrypt.SharpAESCrypt.Decrypt("ABCD@123", plainText, encryptedData);
newByteArray = encryptedData.ToArray();
}
}
//string FinalText = Convert.ToBase64String(newByteArray);
string FinalText = System.Text.Encoding.UTF8.GetString(byteArray);
}
catch (Exception ex)
{
}
}
我收到类似 Invalid header marker
的错误。谁能告诉我我做错了什么?
注意:需要一些关于可用的最佳跨平台(iOS、Android 和 C#)加密和解密库的建议。
在 Decrypt 方法中,您需要使用 Convert.FromBase64String 而非 Encoding 来重构加密的字节数组。UTF8.GetBytes。您使用 UTF8 重构解密字符串的最后一部分是正确的。