Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class SecurityExtensions
- {
- public static string ToSHA1(this string str)
- {
- SHA1 sha1 = SHA1.Create();
- byte[] buffer = Encoding.ASCII.GetBytes(str);
- sha1.ComputeHash(buffer);
- return BitConverter.ToString(sha1.Hash).Replace("-", "");
- }
- public static string EncryptString(this SecureString input, byte[] entropy)
- {
- if (input == null)
- {
- return null;
- }
- var encryptedData = ProtectedData.Protect(
- Encoding.Unicode.GetBytes(input.ToInsecureString()),
- entropy,
- DataProtectionScope.CurrentUser);
- return Convert.ToBase64String(encryptedData);
- }
- public static SecureString DecryptString(this string encryptedData, byte[] entropy)
- {
- if (encryptedData == null)
- {
- return null;
- }
- try
- {
- var decryptedData = ProtectedData.Unprotect(
- Convert.FromBase64String(encryptedData),
- entropy,
- DataProtectionScope.CurrentUser);
- return Encoding.Unicode.GetString(decryptedData).ToSecureString();
- }
- catch
- {
- return new SecureString();
- }
- }
- public static SecureString ToSecureString(this IEnumerable<char> input)
- {
- if (input == null)
- {
- return null;
- }
- var secure = new SecureString();
- foreach (var c in input)
- {
- secure.AppendChar(c);
- }
- secure.MakeReadOnly();
- return secure;
- }
- public static string ToInsecureString(this SecureString input)
- {
- if (input == null)
- {
- return null;
- }
- var ptr = Marshal.SecureStringToBSTR(input);
- try
- {
- return Marshal.PtrToStringBSTR(ptr);
- }
- finally
- {
- Marshal.ZeroFreeBSTR(ptr);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement