지난번엔 자바버전의 SHA256 암호화에 대해서 알아보았습니다.
자바버전으로 만들어 놓은 것은 오라클 Function에서도 호출해서 사용할 수 있습니다.안녕하세요 @flyyou입니다.
오늘은 .NET의 c# 버전으로 SHA256 암호화에 대해서 설명을 드리도록 하겠습니다.
저희 개발한 시스템이 자바도 있고 닷넷도 있습니다.
상호 이기종 환경에서 Open API를 통한 연동 및 DB연동을 통한 데이터 연동이 이루어지고 있습니다.
이전 AS-IS 시스템은 자바 새로 구축된 시스템은 닷넷으로 구축되어 있어서 연동은 꼭 필요한 사항입니다.
이때 고객의 데이터에 대해서도 왔다갔다 할텐데 암호화가 필요한 부분은 모두 동일하게 SHA256으로 암호화 합니다.
이기종 시스템의 연동시에 예를들어 시스템 사용에 대한 인증등에 비밀번호를 SHA256으로 서로 암호화해서 체크를 진행합니다.
이때 사용되는 c#용 코드는 다음과 같이 구성되어 있습니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string ret = EncryptSHA256_EUCKR("abcdefghijklmno");
MessageBox.Show(ret);
}
public string EncryptSHA256_EUCKR(string phrase)
{
int euckrCodepage = 51949;
Encoding encoder = Encoding.GetEncoding(euckrCodepage);
SHA256CryptoServiceProvider sha256hasher = new SHA256CryptoServiceProvider();
byte[] hashedDataBytes = sha256hasher.ComputeHash(encoder.GetBytes(phrase));
string hashString = string.Empty;
foreach (byte x in hashedDataBytes)
{
hashString += String.Format("{0:x2}", x);
}
//원본 문자열 : abcdefghijklmno
//암호화 된 문자열 : NDFjNzc2MGM1MGVmZGU5OWJmNTc0ZWQ4ZmZmYzdhNmRkMzQwNWQ1NDZkM2RhOTI5YjIxNGM4OTQ1YWNmOGE5Nw==
return Convert.ToBase64String(encoder.GetBytes(hashString));
}
}
}
실행을 해보면 아래와 같은 윈폼에서 버튼클릭시 "abcdefghijklmno"을 암호화해서 메시지박스로 뿌리는 간단한 소스입니다.
C#도 하실줄 아시나요? 대단하십니다.
c# 소스는 자바랑 비슷해서 그런지 보면 어떤 소스인지 대충 파악이 가능하네요~ 좋은 정보 감사합니다.
네 상당히 비슷하죠????