虽然都是国密算法SM4,但是随着厂商不一样,每个厂商的使用方法不一样,导致厂商提供的测试SM4密钥不一样,SM4结果也不一样;区分CBC、ECB等各种模式。今天就给大家介绍一些示例,都是各种对接过程中的存货,会拆分成几个文章进行讲解。
SM4密钥:LtUrS6Im623PRJHS
待加密字符串:{"ecToken":"xxxxxxxxxssssssss","idNo":"340100198808089999","idType":"01","insuOrg":"010203","userName":"测试人员"}
使用CBC模式、用户ID(默认为16个0)进行SM4加密结果:
epWWzNs8XQDmg9/VWPyr72k1+VKjWXXh93bc0+U+fJf1GKFQEJsrGpOy+xII5QzYArwqVbZNbMYeetAX55Tvq6V/j6hd7oYleL9viCKXpKYyLy3TlCLMx/NzOaFRSVpukC7HXr+F4IUQxoNBVsQ5rrIFohSlDCrnP5dM2on7odc=
部分示例代码:
byte[] enInput = DCCryptor.CMBSM4EncryptWithCBC(Encoding.UTF8.GetBytes(this.txtSM4Key.Text), GetID_IV(), Encoding.UTF8.GetBytes(this.richTextBox1.Text));
string req = Convert.ToBase64String(enInput);
this.richTextBox2.Text = req;
public byte[] GetID_IV()
{
String uid = this.txtUserID.Text; // 请替换为实际的用户UID
String userid = uid + "0000000000000000";
return Encoding.UTF8.GetBytes(userid.Substring(0, 16));
}
国密算法DLL下载:
国密SM4加解密SM2签名验签COM组件DLL.rar_delphi7sm4-其它文档类资源-CSDN下载