大家知道,海關手續辦完後,會給2個usbkey,
乙個是法人卡,乙個是操作員卡,這兩個卡操作許可權不一樣,這個操作員卡是用來對179報文進行數字簽名的
什麼是數字簽名所謂數字簽名,採用的簽名技術是,業界atm機級別的加密技術,也是業內大名鼎鼎的非對稱加密技術rsa
普通的加密可分為幾類
格式加密:
如base64加密,urlencode,
演算法公開,沒有key,誰拿到密文都可以解密
摘要演算法
md5,sha1,sha224,sha256,sha512等
常用的是md5,
這種就是計算摘要,使用這拿到原文後,通過摘要演算法與摘要進行比較,如果相等則證明沒有被篡改
摘要就是不可逆,md5使用很多,比如壓縮包就有檔案的md5校驗
這個其實不算加密,因為無法解密
這個算摘要驗證,其中大名鼎鼎的位元幣用的就是sha256摘要
就是給出乙個值的sha256摘要,然後挖礦者隨機計算摘要值然後,對碰,如果碰到了就算你挖礦成功
對稱加密:
des,3des,aes
這種就是加密方和解密用的是同乙個key
加密方和解密方拿到的是同一把鑰匙,只要拿到了鑰匙就能開啟密室
看到密文
非對稱加密:
rsa,這種是非對稱性加密
可以加解密,公鑰加密,私鑰解密
也可私鑰簽名,公鑰驗籤
私鑰是要自己儲存的,要儲存好, 公鑰是可以隨便給別人的
也就是說如果加密傳輸的話
雙方都要有各自的私鑰與公鑰, 自己保留私鑰,公鑰給對方
公鑰有: 有普通公鑰,有x509證書
海關用的是x509證書
加密方式有sha1withrsa,sha256withrsa
海關用的是sha1withrsa
為什麼要加簽機密性:通訊報文採用rsa演算法加密,不可讀,加密的訊息只要收方能夠解密
防篡改:收方驗證訊息簽名,能夠發先任何更改
防抵賴:收方收到到的訊息簽名由發方的私鑰運算生成,其他人無法生成對應資訊,法律責任,認定
身份認證:收方能夠解密資訊,發方預設收方身份合法
加簽原理是什麼海關採用的是sha1withrsa
海關加簽方式有三種:
usbkey加簽, 公服加簽,加密機加籤
usbkey加簽
私鑰及加密演算法,燒錄到usbkey硬體裡了,
私鑰無法匯出,檢視匯出私鑰的請放棄這種想法
這種usbkey需要用海關的專用軟體來驅動,是用c++編寫的,對外提供dll介面和webservice
驅動是windows,只能在windows機器上使用
公服加簽,雲加籤
這個上海有,
其實是把usbkey裡的檔案刻在了光碟上,光碟是寄給公服平台,
公服平台用光碟裡的證書,來加籤,具體實現形式不清楚
加密機加籤
與usbkey類似,只是效率高一些
怎麼加簽usbkey的話
通過websocket伺服器,wss: 61231,ws: 61232,加簽
通過呼叫dll方式加簽,效率高一些,穩定性好一些
加簽的內容是179獨有的格式字串,海關對接會給例子,參照例子來就行,不同於其他總署報文的加簽內容
公服就是通過公服的介面加簽,雲加籤
加簽驗籤的理解
對加簽驗籤的理解 加簽驗籤模組早已做完了,從剛開始的一臉懵逼,到上線,前前後後兩周多吧,現在整理一下思路,記錄一下。加簽驗籤,傳送訊息方,對訊息加簽名 接受訊息方,驗證簽名是否正確。做加簽驗籤的目的主要目的就是,驗證訊息的完整性 簡單來說,傳送訊息方 1 根據訊息內容形成摘要 2 根據摘要形成簽名字...
spring mvc 加簽驗籤方案
一 請求格式要求 1.get 請求 url示例 http xx api test.do?a 1 b 2 c 3 d 4 content type 簽名key值與a 1 b 2 c 3 d 4 進行一定處理後加密得到 2.post請求 url示例 http xx api test.do content...
RSA 加密 解密 加簽 驗籤
1.公鑰與私鑰碼生成 2.獲取公鑰 獲取公鑰 return private publickey getpublickey catch exception e 獲取私鑰 獲取私鑰 return private privatekey getprivatekey catch exception e bas...