반응형
RSACryptoServiceProvider 암호화
public static string Encrypt(this string target, string key) { if (string.IsNullOrEmpty(target)) throw new ArgumentException("target null"); if (string.IsNullOrEmpty(key)) throw new ArgumentException("key null"); return BitConverter.ToString( new RSACryptoServiceProvider( new CspParameters() { KeyContainerName = key }) { PersistKeyInCsp = true }.Encrypt(Encoding.UTF8.GetBytes(target), true ) ); } public static string Decrypt(this string source, string key) { if (string.IsNullOrEmpty(source)) throw new ArgumentException("sourcea null"); if (string.IsNullOrEmpty(key)) throw new ArgumentException("key null"); RSACryptoServiceProvider cryptoServiceProvider = new RSACryptoServiceProvider(new CspParameters(){KeyContainerName = key}); cryptoServiceProvider.PersistKeyInCsp = true; byte[] rgb = Array.ConvertAll( source.Split( new string[1]{"-"}, StringSplitOptions.None), (Converter )(s => Convert.ToByte(byte.Parse(s, NumberStyles.HexNumber) ) ) ); return Encoding.UTF8.GetString(cryptoServiceProvider.Decrypt(rgb, true)); }
반응형
'C#' 카테고리의 다른 글
dll, exe가 있는 경로 알기 (0) | 2016.01.18 |
---|---|
.NET Assembly Obfuscation(난독화) (0) | 2016.01.11 |
Regex 정규식 (0) | 2016.01.08 |
들어오는 메시지의 최대 메시지 크기 할당량(65536)을 초과했습니다. 할당량을 늘리려면 적합한 바인딩 요소에서 MaxReceivedMessageSize 속성을 사용하십시오. (0) | 2016.01.08 |
byte로 파일 쓰기(write byte to file) (0) | 2016.01.04 |
댓글