<!--Google 468*60橫幅廣告開始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "image"; //2007-07-26: CSDN google_ad_channel = "6063905817"; google_color_border = "6699CC"; google_color_bg = "E6E6E6"; google_color_link = "FFFFFF"; google_color_text = "333333"; google_color_url = "AECCEB"; google_ui_features = "rc:6"; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--Google 468*60橫幅廣告結(jié)束-->
keyczar 是這幾天 Google 放出來(lái)的 API ,其主要的功能為 加解密 與 數(shù)位簽署驗(yàn)證. 它把一些實(shí)作的細(xì)節(jié)都隱藏起來(lái),以及使用適當(dāng)?shù)念A(yù)設(shè)值. 對(duì)於程式設(shè)計(jì)師的好處應(yīng)該就是我們又可以把一些心力放在該注意的其它地方了!
查了一下 keyczar 是 BSD 授權(quán),自己覺(jué)得以後有機(jī)會(huì)使用,所以花了一天的時(shí)間簡(jiǎn)單寫了筆記跟嚐試去使用此 API . 目前實(shí)作仍卡關(guān)中! 囧rz
keyczar 我把玩至今的感覺(jué)(也許有錯(cuò)! 請(qǐng)有興趣的人看官網(wǎng)比較準(zhǔn)!), keyczar = console 介面 + JAVA API .
- console 介面: 利用命令列來(lái)產(chǎn)生管理 keyset .
- JAVA API : 程式設(shè)計(jì)師則用 API 來(lái)與 console 產(chǎn)生的檔案互動(dòng),做加密/解密/簽署/驗(yàn)證 的功能.
目前我卡在 - 利用 console 產(chǎn)生出來(lái)的檔案格式似乎不標(biāo)準(zhǔn),造成後續(xù) API 無(wú)法正常運(yùn)作,已經(jīng)上討論區(qū)去問(wèn)了! 希望不是我搞了個(gè)大笑話! Orz
以下為簡(jiǎn)單概要筆記,建議不要全信,有問(wèn)題看原本比較準(zhǔn)! 之後問(wèn)題解決也會(huì)將 測(cè)試程式碼片段 以及 解決方法 補(bǔ)上!
沒(méi)有 Keyzar 之前
- 開發(fā)者使用不適當(dāng)?shù)姆绞絹?lái)加解密.
- 沒(méi)有辦法保護(hù) Key Rotation.
- 將 Key Roration 以 hard-code 的方式編寫.
實(shí)作版本
JAVA
-
Keyczar
-
Keyczar(KeyczarReader inReader)
- KeyczarFileReader 從本地端讀取 KeySet .
- 開發(fā)者可以實(shí)作自己的 KeyczarReader.
-
Keyczar(KeyczarReader inReader)
- Keyczar(String inKeySetLocation)
-
Encrypter
- 將資料加密.
- 初始化需要傳入 crypting key set 的位置.
- 初始化傳入的 keyset 一定要有一個(gè) primary key.
- 支援以UTF-8編碼的字串,位元組陣列 和 ByteBuffer .
-
Crypter
- 將加密資料解密.
- 初始化需要傳入 crypting key set 的位置.
- 初始化傳入的 keyset 可以包含能解密的 key,namely symmetric key 或 private key.
- 支援以WebSageBase64編碼的字串,位元組陣列 和 ByteBuffer .
-
Vertifier
- 驗(yàn)證數(shù)位簽署.
- 初始化需要傳入任意 key set 的位置.
- 支援以WebSageBase64編碼的字串,位元組陣列 和 ByteBuffer .
-
Signer
- 替資料產(chǎn)生數(shù)位簽署.
- 初始化傳入的 keyset 可以包含能簽署的 key,namely symmetric key 或 private key.
- 初始化傳入的 keyset 一定要有一個(gè) primary key.
- 支援以UTF-8編碼的字串,位元組陣列 和 ByteBuffer .
Python
C++ coming soon
使用 KeyczrTool
建立 KeyczrTool
-
使用 create 指令
- location
-
purpose
- crypt
- sign
- name
-
asymmetric
-
DSA
- 只支援 sign
-
RSA
- 支援 sign 跟 crypt
-
DSA
在 KeyczrTool 下建立 key
-
使用 addkey 指令
-
location
- primary
- active(預(yù)設(shè))
- inactive
- status
- crypter
- size
-
location
在 KeyczrTool 下產(chǎn)生 public key
-
使用 pubkey 指令
- location
- destination
在 keyczrTool 下管理 key 的 status
-
promote
- active key -> primary key
- inactive key -> primary key
- 一組 keyset 中只會(huì)有一個(gè) primary key.
-
demote
- primary key -> active key
- active key -> inactive key
-
revoke
- 只作用於 inactive key 上.
用 JAVA 實(shí)作遇的問(wèn)題:
KeyczarTool 在哪裡?
keyczar05b-1.6.jar 解壓縮後在 org/keyczar 下.
怎麼執(zhí)行 KeyczarTool ?
console 進(jìn)入 keyczar 解壓目錄下.
執(zhí)行 java org.keyczar.KeyczarTool (後面參數(shù)參考文件)
沒(méi)有 GsonBuilder .
至 http://code.google.com/p/google-gson/downloads/list 下載.
解壓縮後丟至 keyczar 相對(duì)應(yīng)的位置下.
沒(méi)有 log4j .
至 http://logging.apache.org/log4j/1.2/download.html 下載.
解壓縮後丟至 keyczar 相對(duì)應(yīng)的位置下.
資料來(lái)源
- Google Releases an Open Source Cryptography Toolkit
- Keyzar on Google Code
- http://www.keyczar.org/
- 回答我問(wèn)題的 Ben Laurie 的部落格
<!--新Google 468*60橫幅廣告開始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x60, 創(chuàng)建于 08-8-6 */ google_ad_slot = "7368701459"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468*60橫幅廣告結(jié)束-->
<!--新Google 468x15 橫鏈接單元開始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x15 橫鏈接單元 */ google_ad_slot = "5785741422"; google_ad_width = 468; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468x15 橫鏈接單元結(jié)束-->
<!-- Google Reader shared發(fā)布代碼開始 --><script type="text/javascript" src="http://www.google.com/reader/ui/publisher.js"></script><script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p(%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D)%3Bnew%20GRC"></script><!-- Google Reader shared發(fā)布代碼結(jié)束 -->
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

