可是網路文章和MSDN翻著翻著,發現似乎少了什麼...
原來是要傳入的 byte[] array 參數不是寫死的就是沒寫 (可隨機產生
所以坎尼寫了個小方法,可以把使用者自訂的文字轉為 byte 陣列
I. 取得陣列方法
方法會要求傳入三個參數:要轉換的文字、長度不足要補上的byte、陣列長度接著會呼叫 UTF8Encoding 的 class,將文字先轉換為 byte 陣列
由於會指定陣列長度,由自己輸入的字串轉出來大多是不符合需求
所以用個 for 迴圈取出指定長度的資料即可 (程式碼見下圖)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXa39MzKnQCJ7jCwTcwsFZyKi_vIbPNKC1CHMs4CItQTtLgUKhhsCMkpNfzpX4wEUqwz2XWzumYTzZKIWD_eWAQhvnN9g0_BwUfEu-_EEM7Fu6hRQM9-nfdPwaoMMgV0vQXZWdP3DALgFK/s400/byArr1.png)
II. 使用方式
再來就是上網找加解密的方法啦坎尼參照 聖哥 的 這篇「如何加密字串」寫了個 TripleDES 加解密的函數
使用加密方法
需先取得長度為 16 的 Key 及 IV 的陣列 (可為不同內容)
然後呼叫加密的方法即可
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMvLomHjJDmnyJJG70LdoC6cUdYOBzVskkAgJipS8wdxcv5y50yDTG92YOK041fPVKdMjDJ04_N2p4K62vvJFmgTlkIEuIFdqQgNs2LgjRxVZPb_DJU9ad7U-Bb2DoXIcta5QtN7OuG5nV/s400/byArr3.png)
使用解密方法
只要反其道而行即可,但注意 KEY 及 IV 需為同樣的陣列
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj91yq_zKAuv9WTHnnMjS00JBePZXjlgQpZzupyFgG4pwXWbDx2L1tSZhTYER_JoxkPNFbEFvvbnf6xLCM2_VYaSFpzugnnjj65h-3OxwnhUle53cj_fek0co0D4shadBDa5fZXXAivqVRH/s400/byArr4.png)
III. 成果展示
輸入要使用的 KEY 及 IV,接著輸入要加密的內容點下「加密」按鈕即會加密
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkpUnkiut-dHmfwJVcX_8A0F27XzqNGJ6189VwCRmd_SCx45Fov9Sdw5USiGuLUGz6-uRhuaaBwN0iO7ndI5t4RGtdJY_bRLzfhp4FS_1DLshsh0DWywD1HmNu_mKHssQa7R5PsEDmPUNI/s400/byArr2.png)
點下「解密」即可將加密過內容解出來
若是金鑰不同就會發生例外,向量不同則是文字可能會有亂碼
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLdQorTSQDSEHLF-OYgF44Cnr392X5XlbW89iXDfESlVpaAr4CzchjUufU9y8gQ-Og5cv-Oc72AYUAJDQtazub_IaQSD873VpX2mI6NovkQ0DazD8iAwL9G-GallM6kFMNSatDbiuxa-f8/s400/byArr5.png)
打完收功
IV. 小結
金鑰是加密演算法中十分重要的一環但每次都用同一組或是要重新建一組實在是很麻煩
所以提供這個範例給大家參考
當然有更好的方法也歡迎大家分享出來給其他有需要的人 :D
沒有留言:
張貼留言