RyeolStringHasher.zip

소스 관리의 편의 문제로 현재 주석은 영어로 작성되어 있습니다.

간단한 문자열 해시 라이브러리입니다. COM (32/64 비트) 과 C# 으로 구현되어 있습니다.

입력 문자열은 UTF-8 으로 변환된 후 MD5SHA2-256 과 같은 해시 알고리즘으로 해시됩니다. 해시된 바이너리는 Base64로 인코딩됩니다.

다음은 C# 버전 StringHasher 를 사용하는 예제입니다. StringHasher 클래스는 StringHasher.cs 파일에 구현되어 있습니다.

/*
 *  C#
 */
using Ryeol.Security.Cryptography;
...

// 인스턴스 만들기.
StringHasher hasher = new StringHasher();

// 해시 알고리즘 설정.
// MD5, SHA1, SHA2-256, SHA2-384, SHA2-512 가 지원됩니다.
hasher.Algorithm = StringHasherAlgorithm.SHA2_256;

// 문자열 해시
string hashed = hasher.Compute("Test sample");


다음 코드는 ASP(VBScript) 에서 StringHasher 를 사용하는 모습입니다. ASP 는 자체적으로 해시를 지원하지 않기 때문에 XySSL 0.8 기반의 COM 인 RyeolStringHasher.dll 파일을 설치해야 합니다.
(Visual Studio 2012 용 Visual C++ 재배포 가능 패키지도 설치해야 합니다.)

'
'  ASP (VBScript)
' 
' 인스턴스 만들기.
Set objHasher = Server.CreateObject("Ryeol.StringHasher")

' 해시 알고리즘 설정.
' MD2, MD4, MD5, SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512 가 지원됩니다.
objHasher.Algorithm = "SHA2-256"

' 문자열 해시
strHashed = objHasher.Compute("Test sample")



릴리즈 노트

2013년 6월 7일
Windows XP 지원을 위해 StringHasher.cs 에서 해시 구현 생성 시 Create 메서드를 사용하도록 수정되었습니다.

2012년 12월 10일
최초 배포


RyeolStringHasher.zip


This is simple libraries that compute hash from a string. It is implemented in COM (32/64 bits) and C#.

The input string is converted into UTF-8, and then is hashed by a hash algorithm such as MD5, SHA2-256, etc. The hashed binary is encoded by Base64.

The following code is an example of using the string hasher in C#. The StringHasher class is implemented in the StringHasher.cs file.

/*
 *  C#
 */
using Ryeol.Security.Cryptography;
...

// Creates an instance.
StringHasher hasher = new StringHasher();

// Sets the hash algorithm.
// MD5, SHA1, SHA2-256, SHA2-384, SHA2-512 are supported.
hasher.Algorithm = StringHasherAlgorithm.SHA2_256;

// Hashs a string.
string hashed = hasher.Compute("Test sample");


The following code shows how to use the string hasher in ASP(VBScript). Since ASP doesn't support built-in hash algorithm, you need to install the RyeolStringHasher.dll file which is a COM dll based on XySSL 0.8.
(You also need to install the Visual C++ Redistributable for Visual Studio 2012.)

'
'  ASP (VBScript)
' 
' Creates an instance.
Set objHasher = Server.CreateObject("Ryeol.StringHasher")

' Sets the hash algorithm.
' MD2, MD4, MD5, SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512 are supported.
objHasher.Algorithm = "SHA2-256"

' Hashs a string.
strHashed = objHasher.Compute("Test sample")



Release Note

June 7, 2013
The C# StringHasher has changed to create a hash implementation by using the Create method to support Windows XP.

December 10, 2012
Initial release.


  RyeolStringEncrypter.zip
소스 관리의 편의 문제로 현재 주석은 영문으로 작성되어 있습니다. 

예전에 작성했던 StringEncrypterAES-256 암호화 기능을 추가한 새로운 버전을 만들어 봤습니다. 현재는 COM dll (32/64 비트)과 C# 클래스만 지원하며, PHP자바는 지원하지 않습니다.

StringEncrypter 는 초기화 벡터를 문자열로 입력받습니다. AES 는 키에 문자열을 사용할 수 없기 때문에, 키 문자열을 UTF-8 으로 변환한 후 MD5 또는 SHA2-256 으로 해시합니다.

마찬가지로 초기화 벡터 문자열 역시 AES 에 바로 사용할 수 없기 때문에 MD5 로 해시됩니다.

입력 문자열은 UTF-8 으로 변환된 후 CBC 모드와 PKCS7 패딩을 사용하는 128 비트 또는 256 비트 AES로 암호화됩니다. AES 키 크기는 키 문자열을 해시하는데 사용된 해시 알고리즘의 크기에 따라 결정됩니다. 예를 들어 키 해시 알고리즘이 SHA2-256 이면, 256 비트 AES 암호화가 사용됩니다. 암호화된 바이너리는 Base64로 인코딩됩니다.

다음은 C# 버전 StringEncrypter 를 사용하는 예제입니다. StringEncrypter 클래스는 StringEncrypter.cs 파일에 구현되어 있습니다.

/*
 *  C#
 */
using Ryeol.Security.Cryptography;
...
const string key = "암호화 비밀키입니다.";
const string iv = "초기화 벡터입니다.";

// 인스턴스 만들기
StringEncrypter encrypter = new StringEncrypter(key, iv);

// 키 해시 알고리즘 설정. MD5 와 SHA2-256 을 지원합니다.
// 아래 코드는 해시 크기가 256 비트이기 때문에, AES-256 이 사용됩니다.
encrypter.KeyHashAlgorithm = StringEncrypterKeyHashAlgorithm.SHA2_256;

// 문자열 암호화
string encrypted = encrypter.Encrypt("테스트 문자열");

// 문자열 복호화
string decrypted = encrypter.Decrypt(encrypted);


다음 코드는 ASP(VBScript) 에서 StringEncrypter 를 사용하는 모습입니다. ASP 는 자체적으로 AES 를 지원하지 않기 때문에 XySSL 0.8 기반의 COM 인 RyeolStringEncrypter.dll 파일을 설치해야 합니다.
(Visual Studio 2012 용 Visual C++ 재배포 가능 패키지도 설치해야 합니다.)

'
'  ASP (VBScript)
' 
Const conKey = "암호화 비밀키입니다."
Const conIV = "초기화 벡터입니다."

' 인스턴스 만들기
Set objEncrypter = Server.CreateObject("Ryeol.StringEncrypter")

objEncrypter.Key = conKey
objEncrypter.IV = conIV

' 키 해시 알고리즘 설정. MD5 와 SHA2-256 을 지원합니다.
' 아래 코드는 해시 크기가 256 비트이기 때문에, AES-256 이 사용됩니다.
objEncrypter.KeyHashAlgorithm = "SHA2-256"

' 문자열 암호화
strEncrypted = objEncrypter.Encrypt("테스트 문자열")

' 문자열 복호화
strDecrypted = objEncrypter.Decrypt(strEncrypted)



릴리즈 노트

2013년 6월 7일
Windows XP 지원을 위해 StringEncrypter.cs 에서 해시 구현 생성 시 Create 메서드를 사용하도록 수정되었습니다.

2012년 12월 10일
최초 배포