2009年8月18日

由文字取得指定長度的 byte 陣列

坎尼最近在研究.NET中資料加解密的方法
可是網路文章和MSDN翻著翻著,發現似乎少了什麼...
原來是要傳入的 byte[] array 參數不是寫死的就是沒寫 (可隨機產生
所以坎尼寫了個小方法,可以把使用者自訂的文字轉為 byte 陣列

I. 取得陣列方法

方法會要求傳入三個參數:要轉換的文字、長度不足要補上的byte、陣列長度
接著會呼叫 UTF8Encoding 的 class,將文字先轉換為 byte 陣列

由於會指定陣列長度,由自己輸入的字串轉出來大多是不符合需求
所以用個 for 迴圈取出指定長度的資料即可 (程式碼見下圖)

II. 使用方式

再來就是上網找加解密的方法啦
坎尼參照 聖哥 的 這篇「如何加密字串」寫了個 TripleDES 加解密的函數

使用加密方法
需先取得長度為 16 的 Key 及 IV 的陣列 (可為不同內容)
然後呼叫加密的方法即可

使用解密方法
只要反其道而行即可,但注意 KEY 及 IV 需為同樣的陣列

III. 成果展示

輸入要使用的 KEY 及 IV,接著輸入要加密的內容
點下「加密」按鈕即會加密

點下「解密」即可將加密過內容解出來
若是金鑰不同就會發生例外,向量不同則是文字可能會有亂碼

打完收功

IV. 小結

金鑰是加密演算法中十分重要的一環
但每次都用同一組或是要重新建一組實在是很麻煩
所以提供這個範例給大家參考
當然有更好的方法也歡迎大家分享出來給其他有需要的人 :D

V. 參考資料

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D