2015年7月23日

取得電子發票QRCODE中AES加密金鑰

圖片來源:天下稅務顧問網

最近在用電子發票的事情,在套用QR Code地方發現,需要帶入24碼AES加密後的驗證資訊。
要做AES加密對於沒有資訊科技背景的我來說,本身就已經不是件簡單的事,好在關於AES加密的這個部分,網路上已經可以找到一些資訊(如果同樣是寫PHP的你,可以參考這個網站:Carl Lee's Note),但是在套用AES加密的時候,會發現加密過程需要一個金鑰(KEY)

麻煩的地方在於,我翻遍了許多文件,上網搜尋了許多資料,就是不知道AES加密的這個金鑰要帶什麼值,找來找去都只看到這幾個字:AES所採用之金鑰產生方式如後章描述。可是....我怎麼找都找不到後章阿!



後來只好打電話去財政部詢問,尋求技術支援,最後總算是成功的取得金鑰了,以下是取得的方式,和大家分享:

一、建立密碼種子


STEP 1登入財政部電子發票整合服務平台(https://www.einvoice.nat.gov.tw/

STEP 2登入帳號密碼


STEP 3在左方「營業人功能選單中」找到「人員帳號及權限管理」


STEP 4進入密碼種子管理(QRcode)


STEP 5若未輸入過密碼種子,則直接按「更新」即可進入。若已設定過,則輸入密碼種子密碼,並按授權確認。



STEP 6設定密碼種子


二、建立AES之32碼金鑰


建立完密碼種子後,接下來就可以透過程式產生AES的加密金鑰(KEY)。

STEP 1於財政部電子發票整合服務平台(https://www.einvoice.nat.gov.tw/)左方的「常用功能」中可以找到「常用文件下載」。


STEP 2下載「電子發票QRCode說明文件」

這個文件是一個壓縮檔,裡面的內容相當豐富,有提到怎麼設定上面所說的密碼種子,也提到如何取得加密金鑰,而取的加密金鑰的程式都在這個壓縮檔裡面。


STEP 3下載並安裝JAVA SDK程式

為了要讓所使用加密金鑰的程式能夠正常執行,我們要先下載JAVA SDK程式(也可以先跳到下一步驟,若能正常執行該程式,則可跳過此步驟)。

JAVA SDK程式可以透過上網搜尋java sdk或直接進入下載網址(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

點選「接受使用規範(Accept License Agreement)」後,選擇適合自己的作業系統後下載安裝。


STEP 4打開金鑰程式(genKey.bat)資料檔

金鑰程式的檔名是genKey.bat,它存在剛剛下載的「電子發票QRCode說明文件」壓縮檔中,進入資料夾「tool」,裡面將可看到金鑰產生程式genKey.bat和genKeysh。


STEP 5執行金鑰產生程式(genKey.bat)

執行「genKey.bat」,接著輸入先前設定好的種子密碼。


輸入完後按下Enter鍵,即可取得32碼金鑰:


把這個金鑰記下來,按下q即可離開程式。

取的金鑰後,接著就是把這個金鑰帶到AES加密的程式當中,AES的加密上網搜尋一下,應該可以有一些範例,如果你同樣是寫PHP,可以參考這個網站:Carl Lee's Note

希望這個分享有幫助到你!





3 則留言:

  1. 請問這個32碼好像沒辦法複製,用抄的很容易錯耶...

    回覆刪除
    回覆
    1. 因為是程式產生的...所以只能小心抄...

      刪除