我为我的机器上托管的WCF服务创建了一个java脚本Web客户端。我正在尝试在服务端实现RSA加密,在客户端实现解密。
要实现RSA,我生成一个公钥,然后使用该密钥将其传递给加密的服务方法。
密钥传递正常,但加密方法在加密时发送400 BAD REQUEST ERROR 。我不知道如何解决这个错误。这是生成公钥的代码。
$(document).ready(function () {
$("#btnSend").click(function () {
debugger;
jQuery.support.cors = true;
var doOaepPadding = true;
var rsa = new System.Security.Cryptography.RSACryptoServiceProvider();
_privateKey = rsa.ToXmlString(true);
_publicKey = rsa.ToXmlString(false);
以下是我在服务端使用加密的代码
public static string Encrypt(string data)
{
var rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(_publicKey);
var dataToEncrypt = _encoder.GetBytes(data);
var encryptedByteArray = rsa.Encrypt(dataToEncrypt, false).ToArray();
var length = encryptedByteArray.Count();
var item = 0;
var sb = new StringBuilder();
foreach (var x in encryptedByteArray)
{
item++;
sb.Append(x);
if (item < length)
sb.Append(",");
}
return sb.ToString();
}
任何有助于我了解此加密方法出错的建议都会非常感激。