close

由於客戶需求要串接新竹貨運,但是我上網看了看都沒有相對應的中文文獻

於是自己摸索了搞了半天總算是踹出了正確答案

DES CBC只是其中一種可逆的加密方式  其他還有 DES ,AES, DES EDE3 CBC有的沒的加密方式

組成一組DES CBC需要一個向量IV  一個金鑰KEY

然後把你要加密的字串丟進去加密

有IV 跟 KEY就可以回推出原本的字串

#加密

def encode(str,key)  
    des = OpenSSL::Cipher.new("DES-CBC")
    des.encrypt 
    des.key =  key
    des.iv = "11223344566789".force_encoding("UTF-8")
    cipher = des.update(str)  
    cipher << des.final  
    @str =  Base64.encode64(cipher)  #加密結果
  end

#解密

def decode(str,key)  
    str = Base64.decode64(str)  
    des = OpenSSL::Cipher.new("DES-CBC")
    des.decrypt 
    des.key = key
    des.iv = "11223344566789".force_encoding("UTF-8")
    @X = des.update(str) + des.final   #解密結果
  end

帶入參數 str是要加密的字串

帶入參數 key是要加密的字串(在這裡事變量  因此才會帶入)

在這裡  全部都要用utf8編碼

加密結果要轉64bit

解密就先把得到的字串先從64bit 轉出來(專業說法我也不知道)

就降~

arrow
arrow

    人在中國 發表在 痞客邦 留言(0) 人氣()