예제 #1
0
파일: Program.cs 프로젝트: HRL95/Hello
        static void Main(string[] args)
        {
            try
            {
                //MD5  加密算法是公开的
                //通过原文---密文    密文不能得到原文

                //相同的原文加密的结果是一样的
                //原文差别小,密文差别大
                //文件加密:(文件摘要)无论文件多大,都能产生一个32位字符串
                //无论原文如何,都能得到一个32位字符串

                //MD5有啥用呢?
                //1 文件防止纂改:
                //git:如果仅仅只是一个文件修改了,当前这个文件就会标红! MD5!
                //急速妙传:MD5

                //2 密码保存  避免看到明文
                //   校验:就是把明文MD5以后再表

                //3 数字签名/防止抵赖

                //MD5加盐:“123456Richard-Eleven” MD5 多次

                #region MD5
                {
                    Console.WriteLine(MD5Encrypt.Encrypt("3"));
                    Console.WriteLine(MD5Encrypt.Encrypt("3"));
                    Console.WriteLine(MD5Encrypt.Encrypt("123456小李"));
                    Console.WriteLine(MD5Encrypt.Encrypt("113456小李"));
                    Console.WriteLine(MD5Encrypt.Encrypt("113456小李113456小李113456小李113456小李113456小李113456小李113456小李"));
                    //string md5Abstract1 = MD5Encrypt.AbstractFile(@"D:\Ruanmou\Advanced13Encrypt\00test-副本.rar");
                    //string md5Abstract2 = MD5Encrypt.AbstractFile(@"D:\Ruanmou\Advanced13Encrypt\00test.rar");
                }
                #endregion


                //Des:
                //对称可逆加密
                //原文---加密以后--密文   密文---解密--原文
                //再加密和解密的时候 需要一个密钥!
                //对称:加密解密都是同一个密钥;
                //速度快
                //加密算法也是公开!
                //安全性 传输加密解密Key的时候存在的安全性问题

                #region Des
                {
                    string desEn  = DesEncrypt.Encrypt("Richard老师");
                    string desDe  = DesEncrypt.Decrypt(desEn);
                    string desEn1 = DesEncrypt.Encrypt("张三李四");
                    string desDe1 = DesEncrypt.Decrypt(desEn1);
                }
                #endregion


                //Rsa
                //速度相对较慢!
                //加密Key  解密Key 二者是一对儿,但是不能相互推导出来!
                //公钥  把Key公开, 私钥:放在自己兜儿里
                //位什么要有公钥私钥?

                #region Rsa
                {
                    KeyValuePair <string, string> encryptDecrypt = RsaEncrypt.GetKeyPair();
                    string rsaEn1 = RsaEncrypt.Encrypt("net", encryptDecrypt.Key);
                    string rsaDe1 = RsaEncrypt.Decrypt(rsaEn1, encryptDecrypt.Value);
                }
                #endregion


                //我们再访问有些站点的时候:https  证书

                //现在是22:03 大家开始提问,22:06开始答疑!期间老师不说话!
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }