¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / Java / °Å¹æ²½

Java¤Ç¶¦Ä̸°°Å¹æÊý¼°¤Ç°Å¹æ²½¤ò¹Ô¤¦¤ä¤ê¤«¤¿¤Ç¤¹¡£AES°Å¹æ²½¤Ë¤Ï

AES/ECB/ISO10126Padding
AES/ECB/PKCS5Padding
AES/CBC/ISO10126Padding
AES/CBC/PKCS5Padding

¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¤¬°Ê²¼¤Î¥µ¥ó¥×¥ë¤Ï AES/ECB/PKCS5Padding ¤Ç°Å¹æ²½¤ò¤·¤Æ¤¤¤Þ¤¹¡£

¥µ¥ó¥×¥ë¥³¡¼¥É

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Base64;

public class EncryptSample {

 public static void main(String[] args) throws Exception {
     String key = "aaaaaaaaaabbbbbb"; // <-128bit¤Î¥­¡¼
     byte[] keyBytes = key.getBytes(); // ¥Ð¥¤¥ÈÎó¤ËÊÑ´¹

     byte[] enBytes = EncryptSample.encryptECB("abcdefg hijklmn".getBytes(),
       keyBytes); // "abcdefg hijklmn" ¤È¤¤¤¦Ê¸»ú¤ò¶¦Ä̸°¤Ç°Å¹æ²½
     // System.out.println(new String(enBytes));

     byte[] deBytes = EncryptSample.decryptECB(enBytes, keyBytes);
     // ¶¦Ä̸°°Å¹æ²½¤Ê¤Î¤Ç¡¢Æ±¤¸¥«¥®¤ÇÉü¹æ¤Ç¤­¤ë

     System.out.println(new String(deBytes));

     // °Å¹æ²½¤·¤¿¥Ç¡¼¥¿¤òBase64¤·¤Æ¤ß¤ë
     byte[] bs = Base64.encodeBase64(enBytes, false);
     System.out.println(new String(bs));

 }


 public static byte[] encryptECB(byte[] data, byte[] secret_key) {

     SecretKeySpec sKey = new SecretKeySpec(secret_key, "AES");
     try {
      Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
      cipher.init(Cipher.ENCRYPT_MODE, sKey);
      return cipher.doFinal(data);

     } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
     } catch (NoSuchPaddingException e) {
      e.printStackTrace();
     } catch (InvalidKeyException e) {
      e.printStackTrace();
     } catch (IllegalBlockSizeException e) {
      e.printStackTrace();
     } catch (BadPaddingException e) {
      e.printStackTrace();
     }
     return new byte[0];
 }

 public static byte[] decryptECB(byte[] encData, byte[] secret_key) {

     SecretKeySpec sKey = new SecretKeySpec(secret_key, "AES");
     try {
      Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
      cipher.init(Cipher.DECRYPT_MODE, sKey);
      return cipher.doFinal(encData);
     } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
     } catch (NoSuchPaddingException e) {
      e.printStackTrace();
     } catch (InvalidKeyException e) {
      e.printStackTrace();
     } catch (IllegalBlockSizeException e) {
      e.printStackTrace();
     } catch (BadPaddingException e) {
      e.printStackTrace();
     }
     return new byte[0];
 }
}

¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ê

abcdefg hijklmn
zhzF4Q/BcnoKCWruBNWcsg==

¶¦Ä̸°¤ò¥é¥ó¥À¥à¤ËÀ¸À®¤¹¤ë

¾å¤Î¤è¤¦¤ËÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¶¦Ä̸°¤òºî¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢¥é¥ó¥À¥à¤Ë¸°¤òÀ¸À®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

private static Key genKey() throws NoSuchAlgorithmException {
  KeyGenerator generator = KeyGenerator.getInstance("AES");
  SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
  generator.init(128, random);
  Key key = generator.generateKey();
  return key;
}

¤³¤Î¥­¡¼¥¯¥é¥¹¤«¤é

byte[] keyBytes = key.getEncoded();

¤È¤ä¤Ã¤Æ¥­¡¼¤Î¥Ð¥¤¥ÈÎó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥Ð¥¤¥ÈÎó¤ò¥Õ¥¡¥¤¥ë¤ËÊݸ¤·¤Æ¤ª¤±¤Ð¸°¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤Þ¤¹¡£

Utils.byte2File(keyBytes, "hoge.key");

Utils¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Á¤é


¤³¤Îµ­»ö¤Ï

ÁªÂò»è Åêɼ
¤ª¤â¤·¤í¤«¤Ã¤¿ 39  
¤½¤¦¤Ç¤â¤Ê¤¤ 4  

¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / Java / °Å¹æ²½

¸½ºß¤Î¥¢¥¯¥»¥¹:27856


¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2012-03-30 (¶â) 17:38:40 (50d)