C\#AES 암호 화 및 복호화 실현 방법
AES(The Advanced Encryption Standard)는 미국 국가 표준 및 기술 연구소 가 전자 데 이 터 를 암호 화 하 는 데 사용 하 는 규범 이다.그것 은 금융,전신,정부 디지털 정 보 를 포함 한 사람들 이 공인 하 는 암호 화 방법 이 될 것 으로 예상 된다.
AES 는 전자 데 이 터 를 보호 할 수 있 는 새로운 암호 화 알고리즘 이다.명확 하 게 말 하면 AES 는 128,192,256 비트 키 를 사용 하고 128 비트(16 바이트)로 데 이 터 를 암호 화하 고 복호화 할 수 있 는 교체 되 고 대칭 적 인 키 로 구 성 된 암호 입 니 다.공공 키 암 호 는 키 쌍 을 사용 하 는 것 과 달리 대칭 키 암 호 는 같은 키 암호 화 와 복호화 데 이 터 를 사용 합 니 다.그룹 암 호 를 통 해 돌아 오 는 암호 화 된 데이터 의 자릿수 는 입력 데이터 와 같 습 니 다.다음은 제 가 정리 한 코드 입 니 다.여러분 께 도움 이 되 었 으 면 합 니 다.
/// <summary>
/// ASE
/// </summary>
public class AESHelper
{
/// <summary>
///
/// </summary>
private static string Key
{
get
{
return "abcdef1234567890"; //// 16
}
}
//
private static byte[] _key1 = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// AES
/// </summary>
/// <param name="plainText"> </param>
/// <returns> Base64 , </returns>
public static string AESEncrypt(string plainText)
{
//
SymmetricAlgorithm des = Rijndael.Create();
byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//
//
des.Key = Encoding.UTF8.GetBytes(Key);
des.IV = _key1;
byte[] cipherBytes = null;
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cipherBytes = ms.ToArray();//
cs.Close();
ms.Close();
}
}
return Convert.ToBase64String(cipherBytes);
}
/// <summary>
/// AES
/// </summary>
/// <param name="cipherText"> </param>
/// <returns> </returns>
public static string AESDecrypt(string showText)
{
byte[] cipherText = Convert.FromBase64String(showText);
SymmetricAlgorithm des = Rijndael.Create();
des.Key = Encoding.UTF8.GetBytes(Key);
des.IV = _key1;
byte[] decryptBytes = new byte[cipherText.Length];
using (MemoryStream ms = new MemoryStream(cipherText))
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
{
cs.Read(decryptBytes, 0, decryptBytes.Length);
cs.Close();
ms.Close();
}
}
return Encoding.UTF8.GetString(decryptBytes).Replace("\0", ""); /// '\0'
}
}
Key 의 값 은 config 파일 에 넣 을 수도 있 고 데이터베이스 에 넣 을 수도 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux 의 가상 시디롬 과 가상 플 로 피만약 당신 이 방금 윈도 에서 리 눅 스 로 옮 겼 다 면, 윈도 아래 에 가상 드라이브 가 있 고, 리 눅 스 아래 에 있 는 지 물 어 봐 야 할 것 입 니 다.일반적으로 윈도 가 할 수 있 는 일 은 리 눅 스...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.