JAva実装のAES鍵生成アルゴリズムの例
3167 ワード
この例ではjava実装のAES鍵生成アルゴリズムについて説明する.皆さんの参考にしてください.具体的には以下の通りです.
PS:暗号解読に興味のある方は、当駅のオンラインツールも参考にしてください.
パスワードセキュリティのオンライン検出:http://tools.jb51.net/password/my_password_safe
高強度パスワードジェネレータ:http://tools.jb51.net/password/CreateStrongPassword
迅雷、急行、サイクロンURL暗号化/復号ツール:http://tools.jb51.net/password/urlrethunder
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:http://tools.jb51.net/password/hash_encrypt
オンラインMD 5/hash/SAH-1/SAH-2/SAH-256/SAH-512/SAH-3/RIPEMD-160暗号化ツール:http://tools.jb51.net/password/hash_md5_sha
オンラインsha 1/sha 224/sha 256/sha 384/sha 512暗号化ツール:http://tools.jb51.net/password/sha_encode
本文で述べたjavaプログラム設計に役立つことを願っています.
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class Test {
public static void main(String[] args) {
getKey();
getKeyByPass();
}
/**
*
*/
public static void getKey() {
try {
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(128);
// , 128, 192 256
SecretKey sk = kg.generateKey();
byte[] b = sk.getEncoded();
String s = byteToHexString(b);
System.out.println(s);
System.out.println(" "+s.length());
System.out.println(" "+s.length()*4);
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
System.out.println(" 。");
}
}
/**
*
*/
public static void getKeyByPass() {
//
String password="testkey";
try {
KeyGenerator kg = KeyGenerator.getInstance("AES");
// kg.init(128);// , 128, 192 256
//SecureRandom ,password.getBytes() , , , 。
kg.init(128, new SecureRandom(password.getBytes()));
SecretKey sk = kg.generateKey();
byte[] b = sk.getEncoded();
String s = byteToHexString(b);
System.out.println(s);
System.out.println(" "+s.length());
System.out.println(" "+s.length()*4);
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
System.out.println(" 。");
}
}
/**
* byte 16
* @param bytes
* @return
*/
public static String byteToHexString(byte[] bytes) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String strHex=Integer.toHexString(bytes[i]);
if(strHex.length() > 3) {
sb.append(strHex.substring(6));
} else {
if(strHex.length() < 2) {
sb.append("0" + strHex);
} else {
sb.append(strHex);
}
}
}
return sb.toString();
}
}
PS:暗号解読に興味のある方は、当駅のオンラインツールも参考にしてください.
パスワードセキュリティのオンライン検出:http://tools.jb51.net/password/my_password_safe
高強度パスワードジェネレータ:http://tools.jb51.net/password/CreateStrongPassword
迅雷、急行、サイクロンURL暗号化/復号ツール:http://tools.jb51.net/password/urlrethunder
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:http://tools.jb51.net/password/hash_encrypt
オンラインMD 5/hash/SAH-1/SAH-2/SAH-256/SAH-512/SAH-3/RIPEMD-160暗号化ツール:http://tools.jb51.net/password/hash_md5_sha
オンラインsha 1/sha 224/sha 256/sha 384/sha 512暗号化ツール:http://tools.jb51.net/password/sha_encode
本文で述べたjavaプログラム設計に役立つことを願っています.