2
我想使用CryptoJS在JavaScript中加密并在C#中解密。花了相当多的时间试图让这两种技术返回相同的输出。不过,输出是不同的 - CryptoJS生成的加密字符串与C#生成的加密字符串不同。我究竟做错了什么?感谢您的帮助。使用CryptoJS在JavaScript中加密并在C#中解密
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits=".com.Test" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<p id="output"></p>
<script src="/Scripts/aes.js"></script>
<script>
var encrypted = CryptoJS.AES.encrypt(
CryptoJS.enc.Utf8.parse("test"),
CryptoJS.enc.Utf8.parse("607490BE-18CA-43D7-B11A-57E2621B0137"),
{
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
iv: CryptoJS.enc.Utf8.parse("2D59831C-78AC-4227-B3F3-CE656636C23E")
});
document.getElementById('output').innerText = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
</script>
<%
var encryptor = new AesCryptoServiceProvider
{
Key = Encoding.UTF8.GetBytes("607490BE-18CA-43D7-B11A-57E2621B0137").Take(32).ToArray(),
IV = Encoding.UTF8.GetBytes("2D59831C-78AC-4227-B3F3-CE656636C23E").Take(16).ToArray(),
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
}.CreateEncryptor();
var dataToEncrypt = Encoding.UTF8.GetBytes("test");
Response.Write(Convert.ToBase64String(encryptor.TransformFinalBlock(dataToEncrypt, 0, dataToEncrypt.Length)));
%>
这真是一个糟糕的标题。数百个不同的问题可能与“公钥/私钥”有关。 – 2013-03-15 19:07:53
谢谢约翰。我的糟糕 - 这是一个来自另一个问题的标题,我开始打字,但从未发送过一天。 – user1044169 2013-03-15 19:08:50