uniapp 与C# 加解密

Posted 心冰之海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp 与C# 加解密相关的知识,希望对你有一定的参考价值。

1 uni-app操作

(1) 打开HBuilderX的视图->显示终端

  cd 切换到你项目的根目录

  执行命令 npm install crypto-js

安装成功后你的项目根目录会生成node_modules文件夹,里面有crypto-js就说明成功了

 

import Vue from \'vue\'

import CryptoJS from \'@/components/crypto-js/crypto-js.js\'

const keys =\'12345678900000000000000987654321\';

export default {

AES_encrypt(word) {

var key = CryptoJS.enc.Utf8.parse(keys);

var srcs = CryptoJS.enc.Utf8.parse(word);

var encrypted = CryptoJS.AES.encrypt(srcs, key, {


mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

return encrypted.toString();

},

AES_decrypt(word) {

var key = CryptoJS.enc.Utf8.parse(keys);

var decrypt = CryptoJS.AES.decrypt(word, key, {

mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

return CryptoJS.enc.Utf8.stringify(decrypt).toString();

}

}

 

 

C#

 

const string key = "12345678900000000000000987654321";

/// <summary>
/// AES 加密
/// </summary>
/// <param name="str">明文(待加密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
public string AesEncrypt(string str)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);

RijndaelManaged rm = new RijndaelManaged
{
Key = Encoding.UTF8.GetBytes(key),
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};

ICryptoTransform cTransform = rm.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// AES 解密
/// </summary>
/// <param name="str">明文(待解密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
public string AesDecrypt(string str)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Convert.FromBase64String(str);

RijndaelManaged rm = new RijndaelManaged
{
Key = Encoding.UTF8.GetBytes(key),
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};

ICryptoTransform cTransform = rm.CreateDecryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

return Encoding.UTF8.GetString(resultArray);
}

 

以上是关于uniapp 与C# 加解密的主要内容,如果未能解决你的问题,请参考以下文章

跪求 DES跨(C# Android IOS)三个平台通用的加解密方法

java 与 c# 3des 加解密

java 与 c# 3des 加解密

AES GCM 加解密:PHP VS C# BouncyCastle

PHP如何实现AES加解密

一个java的DES加解密类转换成C#