openssl DSA 數字簽名與簽名驗證

2021-06-28 17:24:08 字數 720 閱讀 7703

與rsa不同,dsa的主要功能是做數字簽名與簽名驗證。dsa不具備對資料進行加密解密的功能,因此在使用上面請注意。往往有很多使用者誤認為非對稱加密演算法都可以對資料進行加解密處理,其實不然,dsa就是乙個很好的例子。

使用c/c++ 呼叫openssl/crypt庫進行dsa測試,**如下:

/* gcc -o test test_dsa.c ../../libcrypto.a -i../bn/ */

#include #include #include "dsa.h"

#include "bn.h"

int show_error(int ret,char *msg)

int init_dsa_key(dsa **dsa,dsa **dsa_pri,dsa **dsa_pub)

int test_dsa(char *buf1,int len1,dsa *dsa_pri,dsa *dsa_pub)

#define buf_size 64

int main(){

int ret = 0;

dsa *dsa = null;

dsa *dsa_pri = null;

dsa *dsa_pub = null;

int i,len = buf_size;

char *buf = (char *)malloc(len);

memset(buf,0,len);

for(i=0;i

數字簽名與數字加密

數字簽名主要經過以下幾個過程 資訊傳送者使用一單向雜湊函式 hash函式 對資訊生成資訊摘要 資訊傳送者使用自己的私鑰簽名資訊摘要 資訊傳送者把資訊本身和已簽名的資訊摘要一起傳送出去 資訊接收者通過使用與資訊傳送者使用的同乙個單向雜湊函式 hash函式 對接收的資訊本身生成新的資訊摘要,再使用資訊傳...

加密與數字簽名

加密與數字簽名 加密與數字簽名 一 加密 資料加密技術從技術上的實現分為在軟體和硬體兩方面。按作用不同,資料加密技術主要分為資料傳輸 資料儲存 資料完整性的鑑別以及金鑰管理技術這四種。在網路應用中一般採取兩種加密形式 對稱金鑰和公開金鑰,採用何種加密演算法則要結合具體應用環境和系統,而不能簡單地根據...

數字簽名的簽名與驗證

1 數字簽名的簽名過程 數字簽名的操作過程需要有發方的簽名數字證書的私鑰及其驗證公鑰。具體過程如下 首先對代發檔案做雜湊演算法形成數字摘要,在對數字摘要用簽名私鑰做非對稱加密形成數字簽名 之後將以上的簽名和電子檔案原文以及簽名證書的公鑰加在一起進行封裝,形成簽名結果傳送給收方待收方驗證。2 數字簽名...