当前位置: 首页 > wzjs >正文

专业提供建站模板的公司网络规划设计师学历低

专业提供建站模板的公司,网络规划设计师学历低,电子请柬免费制作软件app,域名注册查询网站最近项目要引入gm算法,实现aes和sm4数据加密,研究了一下两个系统的安装和测试用例 linux,从github下载GmSSL库( https://github.com/guanzhi/GmSSL.git ),以下为安装方法。 ## GmSSL库安装编译,需要确认…

最近项目要引入gm算法,实现aes和sm4数据加密,研究了一下两个系统的安装和测试用例

linux,从github下载GmSSL库( https://github.com/guanzhi/GmSSL.git  ),以下为安装方法。

## GmSSL库安装编译,需要确认已安装cmakeunzip GmSSL-master.zipcd GmSSL-mastermkdir buildcd buildcmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr/localmakemake installcp /usr/local/lib/libgmssl.a ../../libs/

windows, 从github下载GmSSL库( https://github.com/guanzhi/GmSSL.git  ),以下为安装方法。

  • 确保安装了cmake https://cmake.org/download/
  • 我这里下载的 cmake-4.0.1-windows-x86_64.msi
  • 写一个脚本x86cmd.bat,用来打开vs的命令行
  • @echo off
    call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
    cmd
    
  • 打开x86cmd.bat,解压GmSSL到目录。

  • 这里说下我要用的gm库的格式,为静态库,mt,所以需要修改cmakelists.txt

  • project(GmSSL C)set(CMAKE_C_FLAGS_DEBUG "/MTd")
    set(CMAKE_C_FLAGS_RELEASE "/MT")
    set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
    set(CMAKE_CXX_FLAGS_RELEASE "/MT")
  • 依次执行以下命令安装

  • mkdir build
    cd build
    cmake .. -G "NMake Makefiles" -DWIN32=ON -DBUILD_SHARED_LIBS=OFF
    nmake

  • 安装完后,我们可以在目录中找到gmssl.lib

测试代码及实现

gmssl_use.c  我用packet_id做iv的生成条件。


#include <gmssl/aes.h>
#include <gmssl/sm4.h>
#include "gmssl_use.h"void generate_ctr_iv_from_packet_id(int packet_id, uint8_t iv[IV_KEY_SIZE])
{memset(iv, 0, IV_KEY_SIZE);// 小端写入 packet_id 到 IV 的最后 4 字节iv[12] = (packet_id >> 0) & 0xff;iv[13] = (packet_id >> 8) & 0xff;iv[14] = (packet_id >> 16) & 0xff;iv[15] = (packet_id >> 24) & 0xff;
}int aes_ctr_encrypt_gmssl(const uint8_t *key,int packet_id, const uint8_t *in, uint8_t *out)
{AES_KEY aes_key;if (aes_set_encrypt_key(&aes_key, key, AES128_KEY_SIZE) != 1){return -1;}uint8_t iv[IV_KEY_SIZE];generate_ctr_iv_from_packet_id(packet_id, iv);aes_ctr_encrypt(&aes_key, iv, in, strlen((const char*)in), out);return 0;
}int aes_ctr_decrypt_gmssl(const uint8_t *key,int packet_id, const uint8_t *in, uint8_t *out)
{//加解密对称return aes_ctr_encrypt_gmssl(key, packet_id, in, out);
}int sm4_ctr_encrypt_gmssl(const uint8_t *key, int packet_id, const uint8_t *in,uint8_t *out)
{SM4_KEY sm4_key;sm4_set_encrypt_key(&sm4_key, key);uint8_t iv[IV_KEY_SIZE];generate_ctr_iv_from_packet_id(packet_id, iv);sm4_ctr_encrypt(&sm4_key, iv, in, strlen((const char*)in), out);return 0;
}int sm4_ctr_decrypt_gmssl(const uint8_t *key,int packet_id, const uint8_t *in, uint8_t *out)
{//加解密对称return sm4_ctr_encrypt_gmssl(key, packet_id, in, out);
}void test_func_gmssl()
{uint8_t key[16] = "1234567890abcdef";  // 示例密钥int packet_id = 1;uint8_t plaintext[] = "Hello GmSSL CTR!";uint8_t encrypted[128] = { 0 };uint8_t decrypted[128] = { 0 };printf("AES原文: %s\n", plaintext);aes_ctr_encrypt_gmssl(key, packet_id, plaintext, encrypted);printf("AES加密: %s\n", encrypted);aes_ctr_decrypt_gmssl(key, packet_id, encrypted, decrypted);printf("AES解密: %s\n", decrypted);packet_id = 50;uint8_t plaintext1[] = "Hello GmSSL CTR!";uint8_t encrypted1[128] = { 0 };uint8_t decrypted1[128] = { 0 };// SM4 加密解密printf("SM4原文: %s\n", plaintext1);uint8_t key1[16] = "1234567890abcdef";  // 示例密钥sm4_ctr_encrypt_gmssl(key1, packet_id, plaintext1, encrypted1);printf("SM4加密: %s\n", encrypted1);sm4_ctr_decrypt_gmssl(key1, packet_id, encrypted1, decrypted1);printf("SM4解密: %s\n", decrypted1);
}


文章转载自:

http://HPd5pSbK.qnxkm.cn
http://PSp5vIOW.qnxkm.cn
http://OHdbgICU.qnxkm.cn
http://PQVav8G9.qnxkm.cn
http://5occFKDG.qnxkm.cn
http://qRSAZyFQ.qnxkm.cn
http://ebW7M2rF.qnxkm.cn
http://VQ76k3uG.qnxkm.cn
http://OV2Fixxx.qnxkm.cn
http://CVElaKOk.qnxkm.cn
http://9UMa1Vgh.qnxkm.cn
http://sKiXjnaD.qnxkm.cn
http://0QLTdDZq.qnxkm.cn
http://xeRQi88V.qnxkm.cn
http://x4gzYJap.qnxkm.cn
http://wPf5gF32.qnxkm.cn
http://Zcd3Uquo.qnxkm.cn
http://2DyrsMJr.qnxkm.cn
http://H6mDqX5G.qnxkm.cn
http://9qcqAB3N.qnxkm.cn
http://pkjeTwDe.qnxkm.cn
http://NMjCnP5G.qnxkm.cn
http://64O9m6BM.qnxkm.cn
http://nEb6m2Ta.qnxkm.cn
http://v25Z9ILR.qnxkm.cn
http://gqRZyBrD.qnxkm.cn
http://7qg5HdEe.qnxkm.cn
http://LaXW0kDt.qnxkm.cn
http://M5sBHV3D.qnxkm.cn
http://GU7DtynW.qnxkm.cn
http://www.dtcms.com/wzjs/691195.html

相关文章:

  • 河北建设教育培训网站项目计划书ai生成
  • 自己怎么注册网站临淄信息网123
  • 大网站建设网站后台登陆密码破解
  • 萍乡市建设局网站网站做一样算不算侵权
  • 深圳英文网站建设公司安阳宣传片制作公司
  • 制作一个购物网站要多少钱wordpress主题 安装
  • 苏州市建设局招标网站首页南阳微网站制作
  • 针织衫技术支持东莞网站建设阿里云建设网站的流程
  • dede网站如何换logo网页导航网站设计
  • 嘉兴网站制作哪家专业宁波小程序开发
  • 百度站长资源具有品牌的做网站
  • 个人网站seowordpress首页刷新不变
  • 哪个网站空间好国美在线网站建设费用
  • 24什么网站建设网站开发视频教程百度网盘
  • 免费下载ppt模板网站推荐淘宝客怎么建设网站
  • 东莞市专注网站建设公司网页美工设计第一步需要做什么
  • 建网站用的免费软件仪器网站模板
  • 福州公司网站开发手机app多少钱
  • vps打开网站很慢句容网页定制
  • 智恒企业网站管理系统google adsense wordpress 插件
  • 东莞建外贸网站好网站如何推广行业
  • 网站上线前要做哪些准备wordpress 发布插件
  • php网站模板怎么用龙湖建设工程有限公司网站
  • 潍坊企业网站有个网站叫设计什么
  • 单位网站建设意见国内建网站流程
  • 网站如何报备东莞网站关键词优化效果
  • 怎么给自己的网站做排名普通人怎么样做网站
  • 男孩子和男孩子在一起怎么做网站wordpress is admin
  • 珠海做网站设计有哪些wordpress4.3 漏洞
  • 人才网站app建设建议网站设计数据库怎么做