PB调用国密算法DLL示例,包括SM2签名、SM2验证签名、SM4加密、SM4解密等

基于pb9.0环境的调用示例
//创建OLEObject对象

OLEObject = CREATE OLEObject //创建连接

li_status = OLEObject.ConnectToNewObject("JQSM2SM4.SM2SM4Util")
IF li_status <> 0 THEN //连接不成功,先反注册组件,再重新注册组件

 li_cel = Run("regasm /u JQSM2SM4.dll/tlb:JQSM2SM4.tlb",minimized!)
 IF li_cel <> 1 THEN
  
  MessageBox('提示','反注册失败!')
  RETURN
  
 ELSE
//  MessageBox('提示','反注册成功!')
  
  li_reg = Run("regasm JQSM2SM4.dll/tlb:JQSM2SM4.tlb",minimized!)
  IF li_reg <>  1 THEN
   
   MessageBox('提示','组件注册失败!')
   RETURN
   
  ELSE
//   MessageBox('提示','组件注册成功!')
  END IF
  
 END IF
 
ELSE

END IF
ls_sign = OLEObject.GetSM2SM4("SM2SignCMB",gs_pri_key_zh,"1234567812345678",ls_args1)
//释放资源

OLEObject.DisconnectObject()

 

下载地址:国密SM4加解密SM2签名验签COM组件DLL.rar_delphi7sm4-其它文档类资源-CSDN下载提供给第三方软件,调用COM组件DLL方式进行实现,如delphi、PB等。调用方法与黑龙江省医保社delphi7sm4更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/wdsfeisng/31813059

技术交流微信feisng

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为你提供国密算法SM2签名验证签名示例。以下是示例代码: 签名示例(使用Java语言): ```java import org.bouncycastle.crypto.AsymmetricCipherKeyPair; import org.bouncycastle.crypto.CryptoException; import org.bouncycastle.crypto.digests.SM3Digest; import org.bouncycastle.crypto.engines.SM2Engine; import org.bouncycastle.crypto.generators.ECKeyPairGenerator; import org.bouncycastle.crypto.params.*; import org.bouncycastle.crypto.signers.SM2Signer; import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.math.BigInteger; import java.security.*; import java.security.spec.ECGenParameterSpec; public class SM2SignatureExample { public static void main(String[] args) { Security.addProvider(new BouncyCastleProvider()); try { // 生成密钥对 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC", "BC"); ECGenParameterSpec ecGenParameterSpec = new ECGenParameterSpec("sm2p256v1"); keyPairGenerator.initialize(ecGenParameterSpec, new SecureRandom()); KeyPair keyPair = keyPairGenerator.generateKeyPair(); // 获取私钥和公钥 PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); // 待签名的数据 byte[] data = "Hello, SM2!".getBytes(); // 执行签名操作 SM2Signer signer = new SM2Signer(); signer.init(true, new ParametersWithRandom(privateKey, new SecureRandom())); signer.update(data, 0, data.length); byte[] signature = signer.generateSignature(); System.out.println("签名值: " + new BigInteger(1,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

feisng0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值