des vue 双倍长 解密_[转]单倍长密钥加密和双倍长密钥加密,银联直联终端62域难点详解...
首先來(lái)看一段文字:
——————————————————–
銀聯(lián)直聯(lián)終端測(cè)試中,在POS終端簽到的應(yīng)答報(bào)文中,62域是如何規(guī)定的?
62域長(zhǎng)度應(yīng)為24或40個(gè)字節(jié)。對(duì)于單倍長(zhǎng)密鑰算法:前12個(gè)字節(jié)為PIN的工作密鑰的密文,后12個(gè)字節(jié)為MAC的工作密鑰的密文。(其中,前8個(gè)字
節(jié)是密文,后4個(gè)字節(jié)是checkvalue;用前8個(gè)字節(jié)解出的明文做key,對(duì)8個(gè)字節(jié)00做單倍長(zhǎng)密鑰算法,取結(jié)果的前四位與checkvalue
的值比較應(yīng)該是一致的)。
對(duì)于雙倍長(zhǎng)密鑰算法:前20個(gè)字節(jié)為PIN的工作密鑰的密文,后20個(gè)字節(jié)為MAC的工作密鑰的密文。(其中,“PIN工作密鑰”前16個(gè)字節(jié)是密文,后
4個(gè)字節(jié)是checkvalue;用前16個(gè)字節(jié)解出明文做key,對(duì)8個(gè)字節(jié)00做雙倍長(zhǎng)密鑰算法,取結(jié)果的前四位與checkvalue
的值比較應(yīng)該是一致的;“MAC工作密鑰”前8個(gè)字節(jié)是密文,再8個(gè)字節(jié)是二進(jìn)制零,后4個(gè)字節(jié)是checkvalue;用前8個(gè)字節(jié)解出明文做key,
對(duì)8個(gè)字節(jié)00做單倍長(zhǎng)密鑰算法,取結(jié)果的前四位與checkvalue 的值比較應(yīng)該是一致的)。
———————————————————
這個(gè)坑爹的單倍長(zhǎng)密鑰算法和雙倍長(zhǎng)密鑰算法。以及checkvalue讓我查了好幾天才搞清楚究竟什么回事。現(xiàn)在發(fā)出來(lái)讓有同樣困惑的同志了解下。
首先,單倍長(zhǎng)密鑰算法,和雙倍長(zhǎng)密鑰算法,在這里分別是DES算法的DES算法和3DES加密算法。
其中由于密鑰為16字節(jié)64位,32字節(jié)128位所以稱為單倍長(zhǎng)密鑰和雙倍長(zhǎng)密鑰算法,相應(yīng)的還有三倍長(zhǎng)密鑰算法。
單倍長(zhǎng)密鑰為k1?? 雙倍長(zhǎng)密鑰為k2拆分為前后兩部分k2=k21+k22。假設(shè)des算法寫(xiě)作DES,解密算法寫(xiě)作UDES
單倍長(zhǎng)密鑰算法為:str = DES(str ,k1)
雙倍長(zhǎng)密鑰算法為:
str = DES(str ,k21)
str = UDES(str ,k22)
str = DES(str ,k21)
其對(duì)應(yīng)的解密過(guò)程就不詳解了。
那么坑爹的checkvalue又是什么呢?
val = DES(‘00000000’ ,k1)
checkvalue為val的前4位。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的des vue 双倍长 解密_[转]单倍长密钥加密和双倍长密钥加密,银联直联终端62域难点详解...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ue4 无限地图_RPG游戏开发日志13
- 下一篇: python学习环境安装_python学