微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将C#加密代码转换为邮递员测试脚本

如何解决将C#加密代码转换为邮递员测试脚本

我将介绍这种情况: 我有一个api,它将从进行加密的系统A 接收加密的令牌。然后该api将其解密并使用值。 一切正常。我要实现的是我正在用邮递员编写测试,因此邮递员实际上是在替换系统A 。拥有如此众多的加密库和加密方式,它很难模仿邮递员中的加密。我尝试过,但是我什至没有接近结果。我希望有经验的人会发现,比我更容易将加密从C#转换为javascipt(邮递员)。

    public static String Encrypt(String plainText,String passphrase)
    {
        var plainBytes = Encoding.UTF8.GetBytes(plainText);
        var encryptor = CreateSymmetricAlgorithm(passphrase).CreateEncryptor();
        var encryptedBytes = encryptor.TransformFinalBlock(plainBytes,plainBytes.Length);
        var encryptedText = Convert.ToBase64String(encryptedBytes);
        return encryptedText;
    }

    private static AesManaged CreateSymmetricAlgorithm(string passphrase)
    {
        var salt = passphrase.Substring(3,33);
        var password = passphrase.Substring(44,42);

        //// Initializes a new instance of the Rfc2898DeriveBytes class using a password and salt to derive the key.
        //// Implements password-based key derivation functionality,PBKDF2,by using a pseudo-random number generator based on HMACSHA1.
        var rfc2898 = new Rfc2898DeriveBytes(password,Encoding.UTF8.GetBytes(salt),1024);
        var algorithm = new AesManaged();

        var key = rfc2898.GetBytes(algorithm.BlockSize / 8);
        var iv = rfc2898.GetBytes(algorithm.BlockSize / 8);
        algorithm.Key = key;
        algorithm.IV = iv;
        algorithm.Padding = PaddingMode.PKCS7;
        algorithm.Mode = CipherMode.CBC;

        return algorithm;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。