最近做一个接口,要求用SM3加密,百度找了一堆无用信息,老长老长不说 加密的结果还和要求的不一致,最后发现几行代码就搞定,特此记录一下,直接上代码
//引用部分
using Org.BouncyCastle.Crypto.Digests;
using Org.BouncyCastle.Utilities.Encoders;
//代码段,123是明文,弹窗的是加密后的密文
byte[] msg = Encoding.UTF8.GetBytes("123");
byte[] md = new byte[32];
SM3Digest sm3 = new SM3Digest();
sm3.BlockUpdate(msg, 0, msg.Length);
sm3.DoFinal(md, 0);
string str_token = new UTF8Encoding().GetString(Hex.Encode(md));
MessageBox.Show(str_token.ToUpper());
要引用 BouncyCastle.Crypto 包,nuget能找到
demo的加密结果与文档给的一致,至此结束