#移動mv ./openssl-1.1.0l.tar.gz /usr/local/
#解壓tar xzvf openssl-1.1.0l.tar.gz
#進入解壓目錄
cd /usr/local/openssl-1.1.0l
#輸入命令
./config
make
make install
#檢視版本,出現版本資訊就說明安裝正確
openssl version
注意: 如果沒有安裝 make gcc
apt-get install make如果出現錯誤apt-get install gcc
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: no such file or directory請執行下面的命令,
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1再次執行ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
openssl version傳送方用sha256演算法對原檔案生成乙個簽名檔案,即32個位元組的hash碼。 然後用rsa加密演算法對此演算法加密
1.建立私鑰
openssl genrsa -out key.pri -f4 20482.匯出公鑰
openssl rsa –inform pem –outform pem –in key.pri –out key.pub –pubout3.計算安裝包的資訊摘要
openssl dgst –sha256 –binary –out file1.sha256 安裝包檔案4.用私鑰對資訊摘要進行非對稱加密演算法加密簽名#將原檔案的資訊摘要(hash值)儲存在檔案file1.sha256中。
openssl rsautl -out file1.sig –sign –inkey key.pri –in file1.sha256#產生簽名檔案file1.sig
傳送方將安裝包檔案、公鑰檔案和簽名檔案傳輸給接收方,接收方對加密的簽名解密,得到乙個32個位元組的hash碼。 對原檔案進行sha256簽名計算,得到32位元組的hash. 將這兩個hash碼比較,是否相等。 若相等, 即rsa_sha256數字簽名驗證通過。
原理: 不同檔案生成的hash值一定不同。
1.由簽名檔案計算資訊摘要
openssl rsautl –out file2.rec –inkey key.pub –in file1.sig –pubin –verify2.計算接收到的檔案的資訊摘要#用公鑰解密收到的簽名檔案file1.sig的hash值,即原檔案的資訊摘要(hash值),將結果儲存到二進位制檔案file2.rec中。
openssl dgst –sha256 –binary –out file2.sha256 接收到的檔案3.比較由簽名檔案計算資訊摘要file2.rec與計算出的接收到的檔案的資訊摘要file2.sha256兩個檔案中32個位元組的內容是完全一致的,即資訊摘要是相同的,可以確認接收到的檔案是無篡改、可信的。#在接收方計算收到的檔案的hash值,即資訊摘要儲存到檔案file2.sha256中。
反之,則說明接收到的檔案有篡改或不可信的。
#檢視file2.rec檔案中的資訊摘要od –v –an –t x1 file2.rec
#檢視file2.sha256的內容
Linux下基於openssl實現數字簽名
建立原檔案src.txt 也可以是任意型別的檔案 這裡僅作演示,輸入命令 echo this is a digital signature example.src.txta 建立私鑰 rsa加密演算法產生的2048位私鑰,並使用f4作為公鑰的e引數,將私鑰儲存在檔案key.pri中 openssl ...
php數字證書的簽名和驗籤
證書的簽名和驗籤經常用在和第三方對接介面的時候用到,用於身份校驗和防止資料被篡改。下面整理了乙個pfx格式的數字證書的簽名和cer格式的公鑰進行驗籤的過程。tips 需要php開啟openssl。簽名 public static function sign params,keypath,pwd el...
基於KNN的手寫數字識別
from numpy import import operator import os def classify0 inx,dataset,labels,k 構造分類器 knn原理 datasetsize dataset.shape 0 diffmat tile inx,datasetsize,1 ...