博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
加密解密字符串
阅读量:5087 次
发布时间:2019-06-13

本文共 2319 字,大约阅读时间需要 7 分钟。

///  /// 基于 ProtectedData 实现的加密解密字符串,可以跨windows用户使用,但是不能跨计算机使用 ///      public static class EncryptHelper     {
public static string Encrypt(string stringToEncrypt) {
byte[] toEncrypt = UnicodeEncoding.UTF8.GetBytes(stringToEncrypt); MemoryStream stream = new MemoryStream(); int bytesWritten = EncryptDataToStream(toEncrypt, null, DataProtectionScope.LocalMachine, stream); stream.Close(); return Convert.ToBase64String(stream.ToArray()); } public static string Decrypt(string encryptedString) {
byte[] encrypted = Convert.FromBase64String(encryptedString); MemoryStream stream = new MemoryStream(encrypted); byte[] decryptData = DecryptDataFromStream(null, DataProtectionScope.LocalMachine, stream, encrypted.Length); stream.Close(); return UnicodeEncoding.UTF8.GetString(decryptData); } private static int EncryptDataToStream(byte[] buffer, byte[] entropy, DataProtectionScope scope, Stream stream) {
if (buffer == null) {
throw new ArgumentNullException("buffer"); } if (buffer.Length <= 0) {
throw new ArgumentException("buffer"); } if (stream == null) {
throw new ArgumentNullException("stream"); } int length = 0; byte[] encrptedData = ProtectedData.Protect(buffer, entropy, scope); if (stream.CanWrite && encrptedData != null) {
stream.Write(encrptedData, 0, encrptedData.Length); length = encrptedData.Length; } return length; } private static byte[] DecryptDataFromStream(byte[] entropy, DataProtectionScope scope, Stream stream, int length) {
if (stream == null) {
throw new ArgumentNullException("stream"); } if (length <= 0) {
throw new ArgumentException("length"); } byte[] inBuffer = new byte[length]; byte[] outBuffer; if (stream.CanRead) {
stream.Read(inBuffer, 0, length); outBuffer = ProtectedData.Unprotect(inBuffer, entropy, scope); } else {
throw new IOException("Could not read the stream."); } return outBuffer; } }

转载于:https://www.cnblogs.com/illusion/archive/2011/11/30/2268536.html

你可能感兴趣的文章
Eclipse 在ubuntu桌面显示快捷启动以及解决Eclipse 在ubuntu中点击菜单栏不起作用的原因....
查看>>
Python学习 Day18 Python 3层架构
查看>>
《暗时间》读书笔记(二)
查看>>
SQL如何将A,B,C替换为'A','B','C'
查看>>
2018-11-17站立会议内容
查看>>
jQuery中的height()、innerheight()、outerheight()的区别总结
查看>>
Garbage Disposal(模拟垃圾装垃圾口袋)
查看>>
多线程辅助类之CountDownLatch(三)
查看>>
typedef用法
查看>>
ehlib ado 删除选中记录 的方法
查看>>
日期 时间选择器(DatePicker和TimePicker)实现用户选择
查看>>
AdapterViewFlipper功能 自动播放的图片库
查看>>
leetcode 28 Implement Strstr()
查看>>
asp.net 下OnClientClick的妙用
查看>>
es6 - 模板
查看>>
python基础-正则表达式
查看>>
实现最大索引堆
查看>>
Java equals和hashcode 的区别
查看>>
Redis 笔记与总结1 安装部署
查看>>
(转)linux route命令深入浅出与实战案例精讲
查看>>