c++国密算法SM2加密解密

  • 一、代码

一、代码

  • 封装加密、解密接口:
    加密接口: Encrpt_SM2()
    解密接口:Decrypt_SM2()
    加密解密结果可以和nodejs的模块sm-crypto
    互相加密解密

  • 源码下载地址:国密算法SM2加密解密接口封装demo(c++)

  • 使用Visual studio 2017编译通过

int main()
{int ret = 0;// added by junxue.zheng SM2加密std::string inputStr = "junxue"; //需要加密的字符串,如图所示,字符串中不可以有\0,否则后面的会加密失败unsigned char inputChar[65535];            //字符串转换为char类型inputStr.copy((char*)inputChar, inputStr.length(), 0); int inputLen = inputStr.length();//未加密前数据的长度int a = sizeof(inputStr);unsigned char tempbuf[65535] = { 0 };//加密后的数据ret = Encrpt_SM2(inputChar, inputLen, tempbuf);//加密,秘钥封装在了Encrpt_SM2(内部)int tempLen = strlen((const char*)tempbuf);// 输出的就是发送给js解密的字符串,可以把以下打印出的字符发送给js解密验证printf("enc result:");printf("\n");int i = 0;for (i = 0; i < tempLen; i++){printf("%02X", tempbuf[i]);//printf("%x", sendbuf[i]);if (1 == (i + 1) % 32 && i!=0)printf("\n");}printf("\n");// 解密nodejs发送的数据。若收到数据是string,则需要转换为char数组 ,若收到的数据是char,则直接引用。以下以收到的数据为string为例说明;// encData_str是收到js发送的数据;也可以是上面加密后的数据tempbufstd::string  encData_str = "04EBFC718E8D1798620432268E77FEB6415E2EDE0E073C0F4F640ECD2E149A73E858F9D81E5430A57B36DAAB8F950A3C64E6EE6A63094D99283AFF767E124DF089D494BCA98353CF1EB00DF753450763D85E90162610262E97C3E75FA335F75EB0176C8F5AA2";int encDataLen = encData_str.length();unsigned char encData_char[65535];unsigned char decData[65535];encData_str.copy((char*)encData_char, encDataLen, 0);ret = Decrypt_SM2(encData_char, encDataLen, decData);//解密,秘钥封装在了Decrypt_SM2(内部)system("pause");return 0;
}

c++国密算法SM2加密解密demo相关推荐

  1. 国密算法SM2加密解密

    一.依赖包 <!-- hutool的 SM2 加密--><dependency><groupId>org.bouncycastle</groupId>& ...

  2. 国密算法SM2加解密_签名验签图形化例子

    点击上方蓝字可直接关注!方便下次阅读.如果对你有帮助,麻烦点个在看或点个赞,感谢~ 国密SM2概述 对国密算法有了解的朋友看到SM2可能会先想到非对称加密,之前的SM4是对称加密.SM4加解密使用的是 ...

  3. 国密算法SM2加解密,签名和验签java语言

    SM2加解密java语言 maven项目 引入bcprov-jdk15on <dependency><groupId>org.bouncycastle</groupId& ...

  4. 国密算法SM2加解密数据,解密出现异常

    参考开源项目:https://github.com/ZZMarquis/gmhelper 旧标准的加密排序C!C2C3 新标准 C!C3C2 C1为65字节第1字节为压缩标识,这里固定为0x04,后面 ...

  5. 国家医保移动支付国密算法SM2签名验签、SM4加解密DLL

    国家医保移动支付国密算法SM2签名验签.SM4加解密DLL 支持医保移动支付(国家统一版), 已知省份有广西.贵州.安徽.河北.黑龙江.湖南.吉林.江苏.四川.新疆等各地方. DLL,非.net开发, ...

  6. 国密算法—SM2介绍及基于BC的实现

    国密算法-SM2介绍及基于BC的实现 文章目录 国密算法-SM2介绍及基于BC的实现 简介 私钥 公钥 数据格式 密钥数据格式 私钥数据格式 公钥数据格式 加密数据格式 签名数据格式 计算过程 生成密 ...

  7. 国密算法SM2证书制作

    原文链接:http://www.jonllen.com/jonllen/work/162.aspx 国密算法SM2证书制作 分类:工作 大中小 前段时间将系统的RSA算法全部升级为SM2国密算法,密码 ...

  8. 国密算法 SM2公钥密码 SM3杂凑算法 SM4分组密码 python代码完整实现

    包含SM2公钥密码.SM3杂凑算法和SM4分组密码的国密算法完整工具包完成了.此前分别发布过上述三个算法的代码: SM2:国密算法 SM2 公钥加密 非对称加密 数字签名 密钥协商 python实现完 ...

  9. 小程序 js 库。国密算法 sm2、sm3 和 sm4 的实现

    sm-crypto 小程序 js 库.国密算法 sm2.sm3 和 sm4 的实现. 使用此组件需要依赖小程序基础库 2.2.1 以上版本,同时依赖开发者工具的 npm 构建.具体详情可查阅官方 np ...

最新文章

  1. LeetCode简单题之三维形体的表面积
  2. 2020年最新全球大学学术排名出炉
  3. linux C高手成长过程---书籍推荐
  4. opencv 最大内接矩形笔记
  5. 中国移动雄安研究院 2020校园招聘笔试JAVA方向(一)
  6. net MVC 重定向总结
  7. ajax获取php的数组,使用AJAX请求获取数组并将其传递到php数组中 - javascript
  8. 华为云上可订阅F5_F5亮相华为云计算大会 解读云应用交付
  9. c语言 画线函数,c语言绘制函数曲线
  10. mysql前一天_mysql查询当天,前一天,一周,一个月
  11. pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法
  12. 配置classpath,引入jar包
  13. gorm bool 指针 不更新_百度网盘不限速BaiduPCS-Go for Mac
  14. 信息系统项目管理师自学笔记(二十二)——布线工程、网络规划与设计
  15. priority java_java基础—-多线程之priority(四)
  16. 计算机网络基础知识总结【转自微信公众号杰哥的IT之旅】
  17. 【物联网】物联网项目之北向接口与南向接口
  18. 单词接龙c++题解,请勿抄袭
  19. 工程经济在施工项目成本控制中应用
  20. niosii spi 外部_转载:NIOS II spi详解

热门文章

  1. 融云超级群的「新能力」
  2. 超级群、群组、聊天室,IM 产品的场景化「特异功能」
  3. 精确店铺人群标签,着重分析自然流量
  4. 韩国计算机研究生课程,2020年韩国大学计算机科学硕士申请条件
  5. CIE LAB色差公式与 CIE DE 2000色差公式计算类
  6. 高斯数据库和oracle,华为openGauss数据库正式开源 华为高斯数据库与Oracle区别
  7. 计算机程序存储在哪里,计算机正在运行的程序存放在哪里?
  8. 小程序生成图片保存到系统相册_电子相册怎么做 快速制作电子相册方法
  9. 德业DYD-T22A3除湿机接入HomeAssistant记录
  10. 51单片机串口通讯介绍和实现