为防止信息在传输过程中被黑客窃取,需要对于敏感的客户秘钥信息进行AES加密。AES加密大体过程如下:
一. 生成加密密钥。
    1. 调用MakeMD5_16方法生成密钥password。
    2. MakeMD5_16方法所需参数str即为菠萝派appsecret(请进入开放平台查看)。
    3. 生成的password用于下文加密方法。
二. AES加密。
    1. 调用AESEncrypt方法进行加密,text为待加密字符串,password即上文生成的密钥。
    2. AES加密所需向量请向菠萝派值班技术索取。
三. 加密示例。
    bizcontent={"a":"a1","b":"b1"}
    appsecret=5ee2084de90043be989d4d99d0dd0eaa
    根据上文算法得到加密后的文本:
    var v=AESEncrypt(bizcontent, password)=5E309FC10461C44CF62554E0BE5DFF16447A35830F3084F40ABB042D23F381EF
C#签名示例代码
/// <summary>
/// AES加解密所需IV。
/// </summary>
private static byte[] iv = { 请向菠萝派值班人员索取};
/// <summary>
/// AES加密。
/// </summary>
/// <param name="text">待加密字符串</param>
/// <param name="password">密钥</param>
/// <returns></returns>
public string AESEncrypt(string text, string password)
{
    if (string.IsNullOrEmpty(text))
        return string.Empty;
    var rm = new RijndaelManaged();
    rm.Mode = CipherMode.ECB;
    rm.Padding = PaddingMode.PKCS7;
    rm.KeySize = 128;
    rm.BlockSize = 128;
    var pwdBuffer = System.Text.Encoding.UTF8.GetBytes(password);
    var keyBuffer = new byte[16];
    int len = pwdBuffer.Length;
    if (len > keyBuffer.Length) len = keyBuffer.Length;
    System.Array.Copy(pwdBuffer, keyBuffer, len);
    rm.Key = keyBuffer;
    rm.IV = iv;
    var transform = rm.CreateEncryptor();
    var textBuffer = Encoding.UTF8.GetBytes(text);
    var cipherBuffer = transform.TransformFinalBlock(textBuffer, 0, textBuffer.Length);
    return BufferToHexString(cipherBuffer);
}
/// <summary>
/// Byte[]转换为16进制字符串。
/// </summary>
/// <param name="buffer">字节流</param>
/// <returns></returns>
private string BufferToHexString(byte[] buffer)
{
    if (null == buffer)
        return string.Empty;
    var sb = new StringBuilder();
    for (int i = 0; i < buffer.Length; i++)
        sb.Append(buffer[i].ToString("X2"));
    return sb.ToString();
}
/// <summary>
/// 字节流生成MD5码16进制。
/// </summary>
/// <param name="str">加密字符串</param>
/// <returns></returns>
public string MakeMD5_16(string str)
{
    MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
    byte[] byteOriginal = hashmd5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));
    string md5Str = BitConverter.ToString(byteOriginal, 4, 8);
    md5Str = md5Str.Replace("-", "");
    return md5Str;
}注意事项:
编码格式为utf-8。