尝试使用RSA公钥加密字符串时获取错误400错误请求

时间:2015-07-07 07:41:04

标签: javascript web-services wcf encryption cryptography

我为我的机器上托管的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();
    }

任何有助于我了解此加密方法出错的建议都会非常感激。

0 个答案:

没有答案