
加密解密
墨一鉴
软件攻城狮
展开
-
gmssl v2 用 dgst 命令通过 sm2 私钥签名出的结果,在别的工具上无法验签的问题分析
通过分析发现,导致问题的原因是:gmssl v2 调用的算法不是 sm2 算法。原创 2023-09-14 22:14:20 · 1274 阅读 · 0 评论 -
sm2 签名验签
目前发现 sm2 有很多实现,比如 gmssl, openssl 1.1.1 ,openssl 3.0,各种代码库实现等等。实践中发现这些实现会出现不能互相验签的情况。后续研究一下。原创 2023-09-10 20:42:00 · 3310 阅读 · 1 评论 -
https 配置
https配置转载 2021-11-20 19:02:05 · 138 阅读 · 0 评论 -
openssl gmssl sm3 sm4
SM3 是国密摘要算法openssl 中使用方法如下$echo "httpfsfgsfgfgsgsfs" > test.dat $openssl dgst -SM3 test.dat $SM3(test.dat)= ebf5e0f6e101a9320fab11365fb23f69a5c65968302635a7bdf2a0392f5463a5gmssl 中使用方法如下$ gmssl sm3 <yourfile>SM3(yourfile)= 66c7f0f462eeedd9d原创 2021-11-01 20:00:00 · 2174 阅读 · 3 评论 -
Base64 空格,加号问题
Base64 空格,加号问题缘由:在一个项目中,app请求tcpdump日志与记录的日志内容不一致请求%2B 识别成 +请求 + 识别成 空格这个在base64解密的时候会出现异常,base64需要的是加号,而不是空格造成的原因:在js中,对url的加密分别由三种方式:escape("aa+aa aa")"aa+aa%20aa"encodeURI("aa+aa aa")"aa+aa%20aa"encodeURIComponent("aa+aa aa")"aa%2Baa%20aa转载 2021-10-28 22:23:20 · 2253 阅读 · 0 评论 -
openssl 动态库 libcrypto.so 中的 sm2_decrypt sm2_encrypt 是怎么变成内部函数的
通过查看 openssl 源码,发现 crypto/sm2/ 目录下实现了 sm2_decrypt, sm2_encrypt 函数,于是快乐的编写了调用程序,由于这两个函数的声明不在 include/openssl ,而是在 include/crypto 目录下。编写时头文件写成 #include "crypto/sm2.h"。#include "crypto/sm2.h"#include "openssl/ec.h"int main(){ const EC_KEY *key;原创 2021-10-24 12:53:33 · 3580 阅读 · 9 评论 -
OpenSSL 资源
https://www.openssl.net.cn/https://www.openssl.org/docs/https://www.feistyduck.com/books/openssl-cookbook/原创 2021-10-24 10:23:07 · 127 阅读 · 0 评论 -
sm2 工具
线上 sm2 工具原创 2021-10-18 22:51:31 · 2837 阅读 · 0 评论 -
openssl gmssl SM2 公私钥生成 签名验签加密解密命令
国密SM2 OpenSSL EVP接口例子使用openssl的EVP接口使用sm2算法加解密等操作生成密钥gmssl ecparam -genkey -name sm2p256v1 -text -out sm2.key生成公钥gmssl ec -in sm2.key -pubout -out pk.pem创建测试文件echo "jasonruan" >> readme.txt签名gmssl dgst -sm3 -sign sm2.key -out sm2.sig readm.原创 2021-10-19 09:00:00 · 10436 阅读 · 0 评论 -
SM2 基础知识
sm2 是非对称加密私钥 长度 32 字节(256 位),公钥长度 64 字节 (512 位)密文长度和明文相同签名长度是 64 字节原创 2021-10-18 21:53:25 · 26809 阅读 · 2 评论 -
openssl SM2 加解密的坑
1、密文结构,有些算法实现输出的密文结构为 C1C2C3 ,有些为 C1C3C2 , 需要先转换密文格式,再做解密操作。2、有些算法实现,公钥前加 04 ,私钥前加 00,密文前加 04 ,在处理时候,可以根据长度处理,尤其 04 的处理。3、有些算法实现加密的密文是裸数据,有些是加了 asn flag 的,两边对接时也得注意格式的转换。注:C1C2C3 是旧标准,新标准的是C1C3C2公钥前面的 04 代表秘钥为未经过压缩的秘钥,长度为 64,加上 04 后长度 65. 03 代表秘钥为经过压原创 2021-10-18 21:19:54 · 5386 阅读 · 1 评论