C# 加密-加密后为何有两种结果的字符串?
问:C# 加密后为何有两种结果的字符串?
比如 cftea 的 MD5 加密后:
有的人的结果是:c2e1861ca90e67ce1f9a62f9c27d8bdc
有的人的结果是:wuGGHKkOZ84fmmL5wn2L3A
答:这是对字节的两种不同表示结果。
第一种是用十六进制表示的(FormsAuthentication.HashPasswordForStoringInConfigFile 就是这种,只是是大写的),具体请参见 BitConverter
。如果用 BitConverter 时没有替换掉“-”的话,加密结果中还会有“-”分隔开。
第二种是用的 Base64 编码,具体请参见 Base64 编码简介
。
相关文档:
c#中基类(父类)中的某方法若想在派生类(子类)中被重写(override),必须将基类中的方法定义为virtual,即虚函数。
若派生类将方法修饰为new,即有意隐藏基类中的方法。
下面看一组代码:
public class Father
{
public void hand()
{
Console.WriteLine("Father.hand");
}
}
......
一、C#预处理器指令入门 #define NET11 //NET11,NET20,(必须放在文件第一行)
using System;
//… …
//… …
//… …
string sBeepType = s.Replace(sKey,"");
#if NET20
int.TryParse(sBeepType,out beepType); //在.net 2.0中才有的方法
#endif
#if ......
C#操作数据库,写来写去就那么几句套话,烦。尽管有SqlHelper之类的辅助类,但还是有一堆参数要自己填,继续烦。最近有朋友问起自动代码生成工具的原理,那今天就说说我的思路吧。我只会MS SQL SERVER,所以就只拿它说事儿了。
其实大的思路很简单,获取数据库中的比较原子的对象,比如字段、参数等,并找出数据库各字段类 ......
RSA
属不对称加密,使用一个公钥一个私钥,公钥可以公开用以加密,私钥严格保密用于解密,RSA 适合于数据量不大的加密,比如加密对称加密的密钥。
RSACryptoServiceProvider
的名称空间是:
System.Security.Cryptography
RSACryptoServiceProvider rsaSend = new RSACryptoServiceProvider();
string plaintext = ......
Rijndael
属对称加密,对称加密在加密和解密时都使用相同的密钥。2000 年 10 月,NIST 选择 Rijndael(发音为 "Rhine dale")作为 AES 算法,用以取代 DES。
Rijndael 的名称空间是:
System.Security.Cryptography
byte[] plaintextBuffer = System.Text.Encoding.UTF8.GetBytes("明文");
// ......