拼吾爱程序人生.Net编程C# 自定义C#加密方法

1  /  1  页   1 跳转 查看:1725

自定义C#加密方法

自定义C#加密方法

文/oohacker  出处/CSDN

在程序中经常都要用到数据加密, 不过.NET中的加密方式稍微有那么一点复杂了, 有时候我们希望以更简单的方式处理加密, 那么下面的代码是一个简单的不错的例子:

Code


使用方法很简单,如下所示:

Code


输出结果如下:
Hex MD5 Encryption:    eccca05fb779dcece81656890773b7bf
Hex SHA-1 Encryption:  67576ffe5410fb70651ef8fd550ecdb7a9901603

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

用C#实现语音技术
反射(Reflection)
C#的多线程机制初探(2)
采用GDI生成Code39条形码
Singleton设计模式的C#实现(2)
C#锐利体验(1.2)
一种新的开发语言C#
BeginnerwithC#1
《Effective C#》:区别四个判等函数
VisualStudio.Net内幕(3)
 

回复:自定义C#加密方法

应该是
data[i].ToSting

楼主修正下吧
 

回复: 自定义C#加密方法



引用:
原帖由 cndiyssrs 于 2008-6-18 13:28:00 发表
应该是
data.ToSting

楼主修正下吧


多谢提示:)
 

回复:自定义C#加密方法

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace MD5aSHA1
{
    class Program
    {
        public class Encryption
        {
            public static string Md5Encrypt(string text) //字符串MD5加密
            {
                byte[] data = MD5.Create().ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
                return Encrypt(data);
            }
            public static string Sha1Encrypt(string text) //字符串SHA1加密
            {
                byte[] data = SHA1.Create().ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
                return Encrypt(data);
            }
            public static string FileEncrypt(string path, string type) //判断文件是否存在以及相关权限
            {
                try
                {
                    FileStream FS = new FileStream(path, FileMode.Open, FileAccess.Read);
                }
                catch
                {
                    return "Error";
                }
                string code = "";
                if (type.ToLower() == "md5") code = FileMd5Encrypt(path);
                else if (type.ToLower() == "sha1") code = FileSha1Encrypt(path);
                return code;
            }
            private static string FileMd5Encrypt(string path) //文件MD5加密
            {
                FileStream FS = new FileStream(path, FileMode.Open, FileAccess.Read);
                MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
                byte[] data = MD5.ComputeHash(FS);
                return Encrypt(data);
            }
            private static string FileSha1Encrypt(string path) //文件SHA1加密
            {
                FileStream FS = new FileStream(path, FileMode.Open, FileAccess.Read);
                SHA1CryptoServiceProvider SHA1 = new SHA1CryptoServiceProvider();
                byte[] data = SHA1.ComputeHash(FS);
                return Encrypt(data);
            }
            private static string Encrypt(byte[] data) //加密转码
            {
                StringBuilder codes = new StringBuilder();
                for (int i = 0; i < data.Length; ++i)
                {
                    codes.Append(data[i].ToString("x2"));
                }
                return codes.ToString().ToUpper();
            }
        }
        static void Main(string[] args)
        {
            Console.WriteLine(Encryption.Md5Encrypt("admin"));
            Console.Write(Encryption.FileEncrypt(@"c:\boot.inf","md5"));
            Console.ReadLine();
        }
    }
}
 

回复:自定义C#加密方法

刚接触C#
请指教
 

回复: 自定义C#加密方法



引用:
原帖由 cndiyssrs 于 2008-6-19 21:22:00 发表
刚接触C#
请指教


相互交流:)

该文原创者的想法是好的,通过自定义规则实现数据加密,但有点尚未考虑,即如何解密,我也跟他回复过,他称正在研究。。。

MD5加密是最普遍的加密手段之一,一般用于登录帐号的密码加密,但不适合更高要求的电子商务数据加密,那样用到电了认证和钥匙加密相结合的方式。
 

回复:自定义C#加密方法

貌似更高级的安全需求的话不仅是密码加密了
QQ的密码就是双加密后传输验证的
海盗湾采取了SSL连接方式
个人感觉应该采取一套完整的加密方案才能达到商业化的要求
普通的话MD5或SHA1够了
 

回复: 自定义C#加密方法

道高一尺,魔高一丈,软件加密是一方面,还必须结合硬件的防范。
呵呵,我们做网站的流行一句话:人在江湖不要得罪人,否则骇客天天找上门。。。
 
1  /  1  页   1 跳转

快速回复帖子

标题
禁用 URL 识别
禁用表情
禁用 Discuz!NT 代码
使用个人签名
  [完成后可按 Ctrl+Enter 无刷新发布]  

版权所有 拼吾爱程序人生    Total Unique Visitors:

free hit counter

Powered by Discuz!NT 2.1.202   Copyright © 2001-2008 Comsenz Inc. 鄂ICP备07500843号
返顶部