stringencrypter-woodambara_.zip
문자열 암호화는 Encrypt 메서드에서 수행합니다. 이 메서드는 먼저 입력 문자열을 UTF-8으로 변환한 후, PKCS7 패딩을 덧붙입니다. (JSP 버전에서는 PKCS5를 사용하지만, 블록 크기가 128비트일 경우에는 서로 호환됩니다.) 그 다음에 128-bit AES 알고리즘을 사용하여 CBC 모드로 암호화합니다. 암호화된 이진 데이터는 베이스64로 인코딩됩니다.
문자열 복호화에는 Decrypt 메서드를 사용합니다.
다음 코드는 ASP.NET 1.1/2.0(C#)에서 문자열 암호화 클래스를 사용하는 예제입니다.StringEncrypter 클래스는 StringEncrypter.cs 파일에 구현되어 있습니다.
다음 코드는 ASP(
VBScript)에서 문자열 암호화 클래스를 사용하는 예제입니다. ASP는 자체적으로 AES 알고리즘을 지원하지 않기 때문에, COM 컴포넌트인 HyeongryeolStringEncrypter.dll 파일을regsvr32.exe 프로그램으로 먼저 설치해야 합니다. AES 알고리즘은 XySSL 0.8을 기반으로 합니다.
(설치는 %WINDOWS%System32 폴더에 할 것을 권장합니다.)
다음 코드는 JSP (
자바)에서의 예제입니다. StringEncrypter 클래스는 StringEncrypter.java 파일에 구현되어 있습니다. 이 클래스를 사용하려면 Base64Encoder.java 파일도 있어야 합니다.
다음 코드는 PHP 5에서의 예제입니다. StringEncrypter 클래스는 StringEncrypter.php 파일에 구현되어 있습니다. 이 클래스는 UTF-8 형식으로 저장된 파일에서만 사용할 수 있습니다. (클래스에서는 UTF-8 인코딩과 디코딩을 하지 않습니다.)
참고자료
ASP, ASP.NET 1.1/2.0, JSP, PHP 5 에서 사용할 수 있는 문자열 암호화 클래스를 만들어 봤습니다. 이 클래스
들은 서로 호환되기 때문에 ASP에서 암호화한 문자열을 ASP.NET 에서 복호화하는 식으로 사용이 가능합니다. 키와 초기화 벡터는 문자열로 입력받습니다. 내부적으로 키와 초기화 벡터는 UTF-8으로 변환된 후, MD5로 해시됩니다.문자열 암호화는 Encrypt 메서드에서 수행합니다. 이 메서드는 먼저 입력 문자열을 UTF-8으로 변환한 후, PKCS7 패딩을 덧붙입니다. (JSP 버전에서는 PKCS5를 사용하지만, 블록 크기가 128비트일 경우에는 서로 호환됩니다.) 그 다음에 128-bit AES 알고리즘을 사용하여 CBC 모드로 암호화합니다. 암호화된 이진 데이터는 베이스64로 인코딩됩니다.
문자열 복호화에는 Decrypt 메서드를 사용합니다.
다음 코드는 ASP.NET 1.1/2.0(C#)에서 문자열 암호화 클래스를 사용하는 예제입니다.StringEncrypter 클래스는 StringEncrypter.cs 파일에 구현되어 있습니다.
- /*
- * ASP.NET 1.1/2.0 (C#)
- */
- using Hyeongryeol.Security.Cryptography ;
- ...
- const string key = "암호화 비밀키입니다." ;
- const string iv = "초기화 벡터입니다." ;
- // 인스턴스 만들기.
- StringEncrypter encrypter = new StringEncrypter (key, iv) ;
- // 문자열 암호화.
- string encrypted = encrypter.Encrypt ("테스트 문자열") ;
- // 문자열 복호화.
- string decrypted = encrypter.Decrypt (encrypted) ;
(설치는 %WINDOWS%System32 폴더에 할 것을 권장합니다.)
- '
- ' ASP (VBScript)
- '
- Const conKey = "암호화 비밀키입니다."
- Const conIV = "초기화 벡터입니다."
- ' 인스턴스 만들기.
- Set objEncrypter = Server.CreateObject ("Hyeongryeol.StringEncrypter")
- objEncrypter.Key = conKey
- objEncrypter.InitialVector = conIV
- ' 문자열 암호화.
- strEncrypted = objEncrypter.Encrypt ("테스트 문자열")
- ' 문자열 복호화.
- strDecrypted = objEncrypter.Decrypt (strEncrypted)
- /*
- * JSP (Java)
- */
- import com.hyeongryeol.security.cryptography.*;
- ...
- String key = "암호화 비밀키입니다.";
- String iv = "초기화 벡터입니다.";
- // 인스턴스 만들기.
- StringEncrypter encrypter = new StringEncrypter(key, iv);
- // 문자열 암호화.
- String encrypted = encrypter.encrypt("테스트 문자열");
- // 문자열 복호화.
- String decrypted = encrypter.decrypt(encrypted);
- /*
- * PHP 5 (UTF-8)
- */
- require ("StringEncrypter.php") ;
- define ("KEY", "암호화 비밀키입니다.") ;
- define ("IV", "초기화 벡터입니다.") ;
- // 인스턴스 만들기.
- $encrypter = new StringEncrypter (KEY, IV) ;
- // 문자열 암호화.
- $encrypted = $encrypter->encrypt ("테스트 문자열") ;
- // 문자열 복호화.
- $decrypted = $encrypter->decrypt ($encrypted) ;
참고자료
'개발' 카테고리의 다른 글
DBCC SHRINKFILE(Transact-SQL) (0) | 2012.02.03 |
---|---|
LIBRARY CACHE PIN WAIT EVENT가 나타나는 경우의 해결방법 (7) | 2011.12.07 |
[펌] 암호화 모듈 (0) | 2011.08.24 |
[DB] MSSQL 트랜잭션 로그파일 크기 줄이기 (0) | 2011.08.16 |
List of HTTP status codes (0) | 2011.02.23 |