이베리스
Iberis
이베리스
전체 방문자
오늘
어제
  • 전체보기 (72)
    • Course (64)
      • MS-SQL (10)
      • MY-SQL (12)
      • Oracle (2)
      • PostgreSQL (1)
      • ASP.NET with C# (5)
      • PHP (14)
      • Java (1)
      • javaScript (11)
      • A quick tip (1)
      • CodeIgniter (1)
      • CSS (3)
      • 운영체제 (2)
      • Git (1)
      • 리눅스 (0)
    • Utility (4)
    • 와우 (2)
      • 애드온 (2)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 와우클래식
  • share
  • 쿼리
  • Benik
  • 구조 복사
  • 콤마
  • 15517
  • power point
  • 이베리스
  • 19c
  • width
  • 렌카드
  • 1326
  • Elv
  • wowclassic
  • 테이블
  • comma
  • 수동삭제
  • 삭제
  • 보안 주체
  • table
  • 3DP
  • 공유폴더
  • 자동 줄 바꿈
  • dbo
  • 접속안됨
  • error
  • 테이블 복사
  • 3자리
  • MSSQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이베리스

Iberis

Course/ASP.NET with C#

Java, C# 간에 라인달 128비트 암호화

2016. 12. 1. 11:44

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));

        }

 

    }

}




출처 : http://mdj1234.tistory.com/41

저작자표시 비영리 변경금지 (새창열림)

'Course > ASP.NET with C#' 카테고리의 다른 글

[ASP] IIS 7.x 에서 500내부서버오류 정보보기  (0) 2015.12.04
table width 값 고정, 자동 줄 바꿈 하는 스타일  (0) 2012.03.19
Visual Studio 단축키  (0) 2012.03.15
Visual Studio 줄 번호 표시하기  (0) 2012.03.14
    'Course/ASP.NET with C#' 카테고리의 다른 글
    • [ASP] IIS 7.x 에서 500내부서버오류 정보보기
    • table width 값 고정, 자동 줄 바꿈 하는 스타일
    • Visual Studio 단축키
    • Visual Studio 줄 번호 표시하기
    이베리스
    이베리스
    Developer

    티스토리툴바