彩票走势图

.Net下实现简单的加密设计

翻译|其它|编辑:郝浩|2008-01-22 10:16:07.000|阅读 1214 次

概述:

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

一般我们加密码要用MD5,DES等等一些算法,在.NET中集成了大量的加秘类

不过对于简单的加密处理是否有必要那么复杂?

对于要加密保护不强的东西,完全定义一种自己的设计也不错,就是用一个密钥+随即码转化成特殊字符

但随机码和钥怎样组合就是重要的了:

下面是个简单例子:

 public class EncryptString
    ...{
        public static string key = "FireBird";//密钥

        /**//// <summary>
        /// 将明文加密码
        /// </summary>
        /// <param name="uid">用户名</param>
        /// <param name="key">加密明文</param>
        /// <returns>6位随机数+key+UID+5位随机数字</returns>
        public static string Encrypt(string uid) / /这里用了静态方法
        ...{
            int number;
            char code;
            string checkCode = String.Empty;
        &nbsp;   Random random = new Random();

            for (int i = 0; i < 6; i++)
            ...{
                number = random.Next();

                if (number % 2 == 0)
                    code = (char)('0' + (char)(number % 10));
                else
                    code = (char)('A' + (char)(number % 26));

                checkCode += code.ToString();
            }
 &nbsp;          string encryptText = checkCode + "|" + key + "|" + uid + "|" + random.Next(100000);

            return encryptText;
        }
    }
上面的代码生成要加密的明文,其主要是给UID加密,KEY是钥匙

 下面进行加密码

public bool EncryptConvert(string uid)
    ...{
        string encryptText = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(EncryptString.Encrypt(uid))).Replace("+", "%2B");//加密(调用静态明文生成方法)
        if (Decrypt(encryptText, uid))//调用解密方法
        ...{
            Session.Add(SystemConst.KEY_CACHE_STUDENT, uid);
            return true;
           
        }
        else
        ...{
            return false;
        }
    }
 下面定义解密:

  public bool Decrypt(string encryptText,string uid)
    ...{
        string decryptText = System.Text.Encoding.Default.GetString(Convert.FromBase64String(encryptText.ToString().Replace("%2B", "+")));
        string[] decrypt = decryptText.Split('|');
        if (decrypt[1].ToString().Trim() == EncryptString.key.ToString().Trim())
        ...{
            return true;
        }
        else
        ...{
            return false;
        }
    }
以上代码实现了整个加密,解密过程,在加密方法中EncryptConvert()同时调用了下面的解密方法,读这可将他们分离

实现独立的两个方法,并且在真正用到时建议把密钥用字节数组的方式分散到随机数中,比如:

随机器数+1位密钥匙+随即数+1位密钥+随机数......这样在变换时一般是察觉不到变化的,除非有人刻意去攻击你

你还可以把密钥中的某个定意成一定规律递增或减少

这样就实现的简单的加密码,我主要是用于一次性地址转向:)


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:个人博客

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP