虽然都是国密算法SM4,但是随着厂商不一样,每个厂商的使用方法不一样,导致厂商提供的测试SM4密钥不一样,SM4结果也不一样;区分CBC、ECB等各种模式。今天就给大家介绍一些示例,都是各种对接过程中的存货,会拆分成几个文章进行讲解。
SM4密钥:MWH9asci7OiCKiscyxwF8Q==
待加密字符串:{"ecToken":"xxxxxxxxxssssssss","idNo":"340100198808089999","idType":"01","insuOrg":"010203","userName":"测试人员"}
使用ECB模式进行SM4加密结果:
EaebSt0/lxa0V4zPm1LVr+6ttyMi0T5BDd8pP+PEfy56xKon04p3ta4991zJ7rn7fBIjTqJC42Si0MQdRR+N7FV/W9VWWhCMXmJpYT0oFMvn6LEjuNywMvgP9WwTpRzP78tgrPMOH1jm7Ka1SIlKaj/w5EPdHe17XUcGuu8XdbQ=
部分代码:
Sm4Context ctx = new Sm4Context();
ctx.IsPadding = true;
ctx.Mode = Sm4OpMode.SM4_ENCRYPT;
SM4 sm4 = new SM4();
sm4.SetKeyEnc(ctx, ks);
byte[] bs = sm4.Sm4CryptEcb(ctx, Encoding.UTF8.GetBytes(content));
var rslt = Convert.ToBase64String(bs);
return rslt;
国密算法DLL下载:国密SM4加解密SM2签名验签COM组件DLL.rar_delphi7sm4-其它文档类资源-CSDN下载