JAVA

 

import javax.crypto.*;

import javax.crypto.spec.*;

import java.io.*;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

 

class JavaEnCryto

{

           public static void main(String[] args)

           {

                     try

                     {

                                System.out.println(Encrypt("abc@naver.com","_dhqxlak2010_"));

                     }

                     catch (Exception ex)

                     {

                                System.out.println("오류");

                     }

                    

           }

 

           public static String Decrypt(String text, String key) throws Exception

           {

                     Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

                     byte[] keyBytes= new byte[16];

                     byte[] b= key.getBytes("UTF-8");

                     int len= b.length;

                     if (len > keyBytes.length) len = keyBytes.length;

                     System.arraycopy(b, 0, keyBytes, 0, len);

                     SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");

                     IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);

                     cipher.init(Cipher.DECRYPT_MODE,keySpec,ivSpec);

 

                     BASE64Decoder decoder = new BASE64Decoder();

                     byte [] results = cipher.doFinal(decoder.decodeBuffer(text));

                     return new String(results,"UTF-8");

           }

 

           public static String Encrypt(String text, String key) throws Exception

           {

                     Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

                     byte[] keyBytes= new byte[16];

                     byte[] b= key.getBytes("UTF-8");

                     int len= b.length;

                     if (len > keyBytes.length) len = keyBytes.length;

                     System.arraycopy(b, 0, keyBytes, 0, len);

                     SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");

                     IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);

                     cipher.init(Cipher.ENCRYPT_MODE,keySpec,ivSpec);

 

                     byte[] results = cipher.doFinal(text.getBytes("UTF-8"));

                     BASE64Encoder encoder = new BASE64Encoder();

                     return encoder.encode(results);

           }

}

---------------------------------------------------------------------------------------------------------------------

C#

 

using System;

using System.IO;

using System.Text;

using System.Security.Cryptography;

 

namespace AESWithJava.Con

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine(Encrypt("abc@naver.com", "_dhqxlak2010_"));

        }

 

        public static string Decrypt(string textToDecrypt, string key)

        {

            RijndaelManaged rijndaelCipher = new RijndaelManaged();

            rijndaelCipher.Mode = CipherMode.CBC;

            rijndaelCipher.Padding = PaddingMode.PKCS7;

 

            rijndaelCipher.KeySize = 128;

            rijndaelCipher.BlockSize = 128;

            byte[] encryptedData = Convert.FromBase64String(textToDecrypt);

            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);

            byte[] keyBytes = new byte[16];

            int len = pwdBytes.Length;

            if (len > keyBytes.Length)

            {

                len = keyBytes.Length;

            }

            Array.Copy(pwdBytes, keyBytes, len);

            rijndaelCipher.Key = keyBytes;

            rijndaelCipher.IV = keyBytes;

            byte[] plainText = rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0, encryptedData.Length);

            return Encoding.UTF8.GetString(plainText);

        }

 

        public static string Encrypt(string textToEncrypt, string key)

        {

            RijndaelManaged rijndaelCipher = new RijndaelManaged();

            rijndaelCipher.Mode = CipherMode.CBC;

            rijndaelCipher.Padding = PaddingMode.PKCS7;

 

            rijndaelCipher.KeySize = 128;

            rijndaelCipher.BlockSize = 128;

            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);

            byte[] keyBytes = new byte[16];

            int len = pwdBytes.Length;

            if (len > keyBytes.Length)

            {

                len = keyBytes.Length;

            }

            Array.Copy(pwdBytes, keyBytes, len);

            rijndaelCipher.Key = keyBytes;

            rijndaelCipher.IV = keyBytes;

            ICryptoTransform transform = rijndaelCipher.CreateEncryptor();

            byte[] plainText = Encoding.UTF8.GetBytes(textToEncrypt);

            return Convert.ToBase64String(transform.TransformFinalBlock(plainText, 0, plainText.Length));

        }

 

    }

}

 

'프로그램 > - .Net' 카테고리의 다른 글

초성 얻어오기  (0) 2013.05.08
안드로이드 마켓 바로가기 링크  (0) 2013.05.08
iframe 쿠키사용 P3P 규약  (0) 2013.05.08
웹페이지 한글깨짐 현상  (0) 2013.05.08
C# 이미지 합성  (0) 2012.01.13