前端Des加密,后端Des解密,Des模式CBC模式,解密出现错误

299 阅读1分钟

前端加密方式
function encryptByDES(message, key, iv) { var keyHex = CryptoJS.enc.Utf8.parse(key); var ivHex = CryptoJS.enc.Utf8.parse(iv); encrypted = CryptoJS.DES.encrypt(message, keyHex, { iv: ivHex, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } ); return encrypted.ciphertext.toString(); }

后端解密方式: public static string DESDecrypt(string encryptedValue) { try { //将key和IV处理成8个字符 string key = "45632187"; string IV = "45632187"; key = key.Substring(0, 8); IV = IV.Substring(0, 8);

            SymmetricAlgorithm sa;
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            byte[] byt;

            sa = new DESCryptoServiceProvider();
            sa.Key = Encoding.UTF8.GetBytes(key);
            sa.IV = Encoding.UTF8.GetBytes(IV);
            ct = sa.CreateDecryptor();

            byt = Convert.FromBase64String(encryptedValue);

            ms = new MemoryStream();
            cs = new CryptoStream(ms, ct,
            CryptoStreamMode.Write);
            cs.Write(byt, 0, byt.Length);
            cs.FlushFinalBlock();

            cs.Close();

            return Encoding.UTF8.GetString(ms.ToArray());
        }
        catch (Exception ex)
        {
            LogUtility.Debug("DESDecrypt", ex.ToString());
            return "";
        }
    }

出现错误应该如何解决,求求某位大老帮忙解决一下