md5 tcp/ip通讯乱码解决
2013-06-22 20:14
113 查看
数据在传输过程中,因为中文编码或者编码不一致导致乱码问题
今天遇到,网上搜索的很多资料,最终得以解决。主要是通过md5加密算法设置一种统一的加密算法,保证编码的一致性,而我用了ascii编码,这样在数据传输过程中就不会出现乱码
代码如下:
public static string MD5(string encypStr, string charset)
{
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = Encoding.GetEncoding(charset).GetBytes(encypStr);
bs = md5.ComputeHash(bs);
System.Text.StringBuilder s = new System.Text.StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x2").ToUpper());
}
string password = s.ToString();
return password;
}
x2说明:
ToString("X2") 为C#中的字符串格式控制符
X为 十六进制
2为 每次都是两位数
比如 0x0A ,若没有2,就只会输出0xA
假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。
今天遇到,网上搜索的很多资料,最终得以解决。主要是通过md5加密算法设置一种统一的加密算法,保证编码的一致性,而我用了ascii编码,这样在数据传输过程中就不会出现乱码
代码如下:
public static string MD5(string encypStr, string charset)
{
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = Encoding.GetEncoding(charset).GetBytes(encypStr);
bs = md5.ComputeHash(bs);
System.Text.StringBuilder s = new System.Text.StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x2").ToUpper());
}
string password = s.ToString();
return password;
}
x2说明:
ToString("X2") 为C#中的字符串格式控制符
X为 十六进制
2为 每次都是两位数
比如 0x0A ,若没有2,就只会输出0xA
假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。
相关文章推荐
- 解决TIME_WAIT造成的服务器无法访问,Apache的KeepAlive和TCP/IP的TIME_WAIT
- 如何编写用TCP/IP的通讯程序
- 多线程TCP/IP通讯的服务端
- 解决Qt:TCP数据通信的中文乱码问题
- 用wattcp库实现实模式dos下的TCP/IP通讯(总算完整了)
- Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道
- 常见通讯方式RS232 RS485 TCP/IP介绍
- Android通过Socket(TCP/IP)与PC通讯
- qt tcpip通讯程序注意
- OSI和TCP/IP模型之间的区别-----无线网络通讯协议有哪些
- TCP/IP、Http、Soap三个基本的通讯协议有什么区别
- ios实现基于socket tcp/ip 的通讯
- Socket通讯及底层TCP/IP连接原语
- adb通过TCP/IP连接提示 unable to connect to *, Connection refused的解决方法
- 多线程TCP/IP通讯的客户端
- SQLServerException: 到主机的TCP/IP 连接失败解决办法
- 解决win8.1出现“为配置TCP/IP,必须安装并启用网络适配器卡”问题
- QT tcp/ip 通讯0
- 如何解决基本的 TCP/IP 问题
- Android通过Socket(TCP/IP)与PC通讯