Delphi 版 SM3 & SM4 加密实现代码

时间:2022-01-19 10:27:43
【文件属性】:

文件名称:Delphi 版 SM3 & SM4 加密实现代码

文件大小:45KB

文件格式:PAS

更新时间:2022-01-19 10:27:43

Delphi SM3 SM4 加密

(原创资源) SM4 加密、解密库。 SM3 杂凑算法编码。 适用 Delphi 版本:Delpih 7, 2010 (仅在这两个版本下测试过,使用过程尽量考虑兼容。因此其他版本的兼容必问题不大) 关于国密算法,网上基本只有 C/Java 的实现。Delphi 唯一能找到的版本,还是一个网友实现的不完整版本。 仅有 SM4 ECB 模式,CBC 模式的实现还是错误的。为此,我们只好让部门的小美女完整实现了下列功能: SM4 ECB 模式(标准模式) SM4 CBC 模式(密文分组链接方式) SM3 国标 hash 算法 在整个过程经过了一周时间,过程中也是遇坑无数。所以完成后把源码分享出来,希望其他同学不用再从* 做起,少经历一些波折。 如果在使用过程中发现这个库有所不足,还望指出纠正。问题可以发送至邮箱:delphi2006@163.com


网友评论

  • 测试sm3加密正确,加密中文得加AnsiToUTF8 lbledt3.Text := SMUtils.StrToHex(SM3.calcAnsiString(AnsiToUTF8(lbledt1.Text))); 感谢作者努力!
  • 在10.2下编译有语法错误,Incompatible types:'SMbytearray'and 'Pointer'
  • 加密解密正常,问题是与JAVA的加密结果不一至。
  • D7下和10.4下都进行了验证,和java的不一样。。。能否修复一下?
  • D6下,怎么和JAVA的SM4加密或解密后的结果不一致呢;
  • 我这边对方是c#,结果不一样,c#的有源码,能否给修改下,谢谢。
  • D7下可正常调用,下一步进行与java的交互验证
  • 已试数据正确,多谢了
  • 是能加解密,但是加密后的串值跟net或者java下用SM4的ECB模式加密的串值不一样,导致传给对方接口后解密出错,希望能修正这个bug