日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GMSSL学习总结

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GMSSL学习总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Win10編譯

Win10 VS2015 openssl
實測VS2019編譯GMSSL是沒問題的,老哥資源很好。
在這里總結(jié)以下

  • GMSSL源碼
  • OpenSSL源碼
  • 安裝ActivePrel
    安裝完成后通過cmd命令: perl -version 查看是否安裝成功和安裝版本
  • 安裝NASM
    需要手動添加到系統(tǒng)目錄,安裝完成后通過cmd命令:nasm -version 查看是否安裝成功和安裝版本
  • 下載dmake
    解壓到一個路徑,然后將路徑添加到path系統(tǒng)變量
  • 開始菜單vs文件夾找到 x64_x86 Cross Tools Command Prompt for VS,切換到你的 OpenSSL /GMSSL解壓的目錄下面,prefix指定成果物路徑,no-shared不生成靜態(tài)庫
    perl configure VC-WIN32 no-shared --prefix=D:\OpenSSL\Win32
  • 執(zhí)行 nmake 命令,開始編譯,經(jīng)過十幾分鐘的等待編譯完成
  • 執(zhí)行:nmake install ,完成
  • 進入成果物 GMSSL\Win32\bin\gmssl.exe ,命令碼 version 獲取版本號,help 獲取幫助
  • 上述源碼,軟件下載
  • 常用指令

    GMSSL源碼

    • SM2
    //生成SM2密鑰并簽名 $ gmssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2p256v1 -out signkey.pem $ gmssl pkeyutl -sign -pkeyopt ec_scheme:sm2 -inkey signkey.pem -in <yourfile> -out <yourfile>.sig//可以將公鑰從signkey.pem中導(dǎo)出并發(fā)發(fā)布給驗證簽名的一方 $ gmssl pkey -pubout -in signkey.pem -out vrfykey.pem $ gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vrfykey.pem -in <yourfile> -sigfile <yourfile>.sig//生成SM2私鑰及證書請求 $ gmssl ecparam -genkey -name sm2p256v1 -text -out user.key $ gmssl req -new -key user.key -out user.req//查看證書請求內(nèi)容: $ gmssl req -in user.req -noout -text -subject
    • SM3
    //生成SM3摘要 $ gmssl sm3 <yourfile> SM3(yourfile)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
    • SM4
    //加密文件 $ gmssl sms4 -e -in <yourfile> -out <yourfile>.sms4 enter sms4-cbc encryption password: <your-password> Verifying - enter sms4-cbc encryption password: <your-password>//解密文件 $ gmssl sms4 -d -in <yourfile>.sms4 enter sms4-cbc decryption password: <your-password>
    • RSA
      openssl的RSA使用
      RSA在線計算
    //私鑰生成 // -out 指定生成文件,此文件包含公鑰和私鑰兩部分,所以即可以加密,也可以解密 // 1024 生成密鑰的長度 $ gmssl genrsa -out privkey.pem 1024//提取PEM格式公鑰 // -in 指定輸入的密鑰文件 // -out 指定提取生成公鑰的文件(PEM公鑰格式) $ gmssl rsa -in privkey.pem -pubout -out pubkey.pem//提取PEM RSAPublicKey格式公鑰 // -in 指定輸入的密鑰文件 // -out 指定提取生成公鑰的文件(PEM RSAPublicKey格式) $ gmssl rsa -in privkey.pem -RSAPublicKey_out -out pubkey.pem//公鑰中提取N和E $ gmssl rsa -inform PEM -in pubkey.pem -pubin -text -out Key1_pub.txt//私鑰中提取N和E $ gmssl rsa -in privkey.pem -text -out Key1_priv.txt//公鑰加密文件 // -in 指定被加密的文件 // -inkey 指定加密公鑰文件 // -pubin 表面是用純公鑰文件加密 // -out 指定加密后的文件 $ gmssl rsautl -encrypt -in input.file -inkey pubkey.pem -pubin -out output.file//私鑰解密文件 // -in 指定需要解密的文件 // -inkey 指定私鑰文件 // -out 指定解密后的文件 $ gmssl rsautl -decrypt -in input.file -inkey privkey.pem -out output.file//私鑰簽名 // privkey.pem 指定私鑰文件 // sign.txt 指定簽名后文件 // file.txt 指定需要簽名文件 $ gmssl dgst -sign privkey.pem -sha256 -out sign.txt file.txt//公鑰驗簽 // pubkey.pem 指定公鑰文件 // sign.txt 指定簽名后文件 // file.txt 指定需要簽名文件 $ gmssl dgst -verify pubkey.pem -sha256 -signature sign.txt file.txt//證書請求文件 // privkey.pem 指定私鑰文件 // rsacert.csr 指定生成CSR文件 $ gmssl req -new -key privkey.pem -out rsacert.csr//生成證書 // privkey.pem 指定私鑰文件 // rsacert.csr 指定CSR文件 // rsacert.crt 指定生成證書 $ gmssl x509 -req -days 3650 -in rsacert.csr -signkey privkey.pem -out rsacert.crt//查看證書 $ gmssl x509 -in rsacert.crt -text -noout//轉(zhuǎn)換為der文件 $ gmssl x509 -outform der -in rsacert.crt -out rsacert.der//生成p12文件:程序中可用 $ gmssl pkcs12 -export -out p.p12 -inkey privkey.pem -in rsacert.crt
    • DES
    //ebc 每個數(shù)據(jù)塊進行獨立的加密 $ gmssl enc -des-ecb -K 616263 -nosalt -in message.txt -out msg1.bin//cbc 使用一個秘鑰和一個初始化向量對數(shù)據(jù)進行加密,每一個數(shù)據(jù)的加密都對前一個數(shù)據(jù)依賴,每一塊數(shù)據(jù)解密都依賴前一塊數(shù)據(jù) $ gmssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in message.txt -out msg2.bin
    • AES
    //加密 $ gmssl enc -aes-128-cbc -in mingwen.data -K 000102030405060708090A0B0C0D0E0F -iv a0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaF -out miwen.data//解密 $ gmssl aes-128-cbc -d -in miwen.data -K 000102030405060708090A0B0C0D0E0F -iv a0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaF -out mingwen.data
    • HMAC
      在線計算
    $ gmssl dgst -hmac hmackey -sha256 -out out.hash in.data

    總結(jié)

    以上是生活随笔為你收集整理的GMSSL学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。