這是為了 ECT 作業所作的筆記
Bouncy Castle Cryptography
這次作業用到了密碼學的技術,助教給了這個網站的 library 讓大家方便實作
作業內容是:可讀取文字, 圖片, 聲音
先初始化轉成 byte 後,利用 SHA512 進行訊息摘要,
再對檔案做 RSA 加密, 解密,接著是 AES 加密, 解密,
最後使用解密後的內容作還原的動作,
若 input 的檔案與 output 的檔案內容一樣表示成功。
以下是這次作業會用到的 class
| |
p.s. 以下是在寫作業時遇到的問題解決網址
其實用到了什麼class也是google後從學長的部落格看來的XD
SHA512: SHA512 ouput 問題
發現除了 SHA 的 out 外
其他的加解密產生 output 值要印出時都可以用到:
用: String.format("%0128x", new BigInteger(1, byteData));
來取代 Hex.encode(byteData);
RSA:
JavaWorld - 在RSA 解密時的問題
使用Java進行RSA加解密
RSA using BouncyCastle (有問題 不過解決了 –> JavaClassCastException)
AES:
用Bouncy Castle实现AES-128-CBC加密解密 (殘體字不喜勿入)
How to encrypt / decrypt with AES from Bouncy Castle API in J2ME applications
最後的檔案輸出:
良葛格的學習筆記 (最後寫輸出時才想到有這個網站,因此也修改了輸入檔案時的做法,一氣呵成~~ )
若有一直google的話,會發現有許多做法
我認為以下做法最省事:(省略了很多作法,自行google)
| |
2011/06/02 Updated:
單純加解密:
RSA - http://www.javamex.com/tutorials/cryptography/rsa_encryption.shtml
AES - http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html
超級有用 - http://introcs.cs.princeton.edu/java/78crypto/RSA.java.html