cryptostream java_加密解密,CryptoStream()的使用

usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Security.Cryptography;usingSystem.Text;namespaceStringEncrypt

{public classEncrypt

{///

///加密///

/// 密钥

/// 信息

///

internal string ToEncrypt(string encryptKey, stringstr)

{try{byte[] P_byte_key = //将密钥字符串转换为字节序列

Encoding.Unicode.GetBytes(encryptKey);byte[] P_byte_data = //将字符串转换为字节序列

Encoding.Unicode.GetBytes(str);

MemoryStream P_Stream_MS= //创建内存流对象

newMemoryStream();

CryptoStream P_CryptStream_Stream= //创建加密流对象

new CryptoStream(P_Stream_MS,newDESCryptoServiceProvider().

CreateEncryptor(P_byte_key, P_byte_key),CryptoStreamMode.Write);

P_CryptStream_Stream.Write(//向加密流中写入字节序列

P_byte_data, 0, P_byte_data.Length);

P_CryptStream_Stream.FlushFinalBlock();//将数据压入基础流,用缓冲区的当前状态更新基础数据源或储存库,随后清除缓冲区。

byte[] P_bt_temp =//从内存流中获取字节序列

P_Stream_MS.ToArray();

P_CryptStream_Stream.Close();//关闭加密流

P_Stream_MS.Close();//关闭内存流

return //方法返回加密后的字符串

Convert.ToBase64String(P_bt_temp);

}catch(CryptographicException ce)

{throw newException(ce.Message);

}

}internal string ToDecrypt(string encryptKey, stringstr)

{try{byte[] P_byte_key = //将密钥字符串转换为字节序列

Encoding.Unicode.GetBytes(encryptKey);byte[] P_byte_data = //将加密后的字符串转换为字节序列

Convert.FromBase64String(str);

MemoryStream P_Stream_MS=//创建内存流对象并写入数据

newMemoryStream(P_byte_data);

CryptoStream P_CryptStream_Stream= //创建加密流对象

new CryptoStream(P_Stream_MS,newDESCryptoServiceProvider().

CreateDecryptor(P_byte_key, P_byte_key),CryptoStreamMode.Read);byte[] P_bt_temp = new byte[200];//创建字节序列对象

MemoryStream P_MemoryStream_temp=//创建内存流对象

newMemoryStream();int i = 0;//创建记数器

while ((i = P_CryptStream_Stream.Read(//使用while循环得到解密数据

P_bt_temp, 0, P_bt_temp.Length)) > 0)//(1\从当前流中读取200个字节-并将它们存储在 P_bt_temp 中 2\P_bt_temp 中的字节偏移量-从该偏移量开始存储从当前流中读取的数据 3\读入缓冲区中的总字节数)

{

P_MemoryStream_temp.Write(//将解密后的数据放入内存流

P_bt_temp, 0, i);

}return //方法返回解密后的字符串

Encoding.Unicode.GetString(P_MemoryStream_temp.ToArray());

}catch(CryptographicException ce)

{throw newException(ce.Message);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值