填充无效,无法使用CryptoJS 3.1加密和服务器端AesCryptoServiceProvider解密来删除
Padding is invalid and cannot be removed using CryptoJS 3.1 to encrypt and server side AesCryptoServiceProvider to decrypt
我在网上查找了这个异常对我的程序意味着什么,但似乎找不到解决方案,也找不到它发生在我的特定程序中的原因。
C#.Net代码:
/// Decrypts a BASE64 encoded string of encrypted data, returns a plain string
/// </summary>
/// <param name="base64StringToDecrypt">an Aes encrypted AND base64 encoded string</param>
/// <param name="passphrase">The passphrase.</param>
/// <returns>returns a plain string</returns>
public static string AESDecrypt(string base64StringToDecrypt, string passphrase)
{
//Set up the encryption objects
using (AesCryptoServiceProvider acsp = GetProvider(Encoding.Default.GetBytes(passphrase)))
{
byte[] RawBytes = Convert.FromBase64String(base64StringToDecrypt);
ICryptoTransform ictD = acsp.CreateDecryptor();
//RawBytes now contains original byte array, still in Encrypted state
//Decrypt into stream
MemoryStream msD = new MemoryStream(RawBytes, 0, RawBytes.Length);
CryptoStream csD = new CryptoStream(msD, ictD, CryptoStreamMode.Read);
//csD now contains original byte array, fully decrypted
//return the content of msD as a regular string
return (new StreamReader(csD)).ReadToEnd();
}
}
我已经使用谷歌CryptoJS 3.1加密密码
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
</script>
我的JavaScript代码:
var encrypted = CryptoJS.AES.encrypt(newPassword, oldPassword);
cipherText1 = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
console.log(cipherText1);
尝试用以下替换您的代码
var encrypted = CryptoJS.AES.encrypt(newPassword, oldPassword);
cipherText1 = Convert.ToBase64String(encrypted);
console.log(cipherText1);
相关文章:
- 如何使用skip参数使用angular ui引导进行服务器端分页
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 将表单数据提交到服务器端
- 使用ajax的服务器端分页&jQuery
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 使用FormData上传AJAX图像;t在服务器端显示图像
- React路由器服务器端渲染和ajax获取数据
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- 使用 JavaScript 加密字符串并从服务器端 (Java) 解密
- Javascript 加密库(客户端加密 | 服务器端解密)
- 填充无效,无法使用CryptoJS 3.1加密和服务器端AesCryptoServiceProvider解密来删除
- 在服务器端加密数据,在客户端解密数据
- 客户端和服务器端的Asp.net C#加密/解密
- Php代码加密客户端输入数据并在服务器端解密
- 是否有可能在服务器端加密并在客户端解密(使用javascript)
- 在服务器端加密(使用java),在客户端解密(使用任何javascript加密库)