Java Security -- Message Authentication Code (MAC) javax.crypto.Mac
MAC Message Authentication Code (MAC)
係Message Digest 的一種, 建基於MD5方法上, 同時具備Integrity同Authentication的特質, 對比於MD5只時單純
把Message轉為Message Digest, MAC 加入Secret key 係digest過程中, 這就能達到authentication的目的了。
至於如個把secret key 送到recipient 手上就要靠asynchronized encryption了。
以下是最基本運用MAC的方法:
//Generate secret key for algorithm HMAC-MD5
KeyGenerator kg = KeyGenerator.getInstance("HmacMD5"); //取得一個對應key generator reference
SecretKey sk = kg.generateKey(); //Get secret key
// Get instance of Mac Object implementing HMAC-MD5 algorithm
//Initialize it with the above secret key
Mac mac = Mac.getInstance("HmacMD5");
mac.init(sk);
//現在可以把任何message 加入MAC object中, 如果係String 可以先把它轉成byte[] 用 getBytes()
mac.update(byte[] buf);
//get digest result
byte[] macResult = mac.doFinal();