当前位置:编程学习 > C#/ASP.NET >>

页面传递参数加密的问题?

看到有一个页面ContentDetail.aspx?id=4df1b1a2-1d67-4498-8778-6d4f5140b21b
请问id=4df1b1a2-1d67-4498-8778-6d4f5140b21b是用了什么加密算法,和我们一般用的加密结果不一样呢?
--------------------编程问答-------------------- 求解!!! --------------------编程问答-------------------- 你这是GUID吧 不是加密的 --------------------编程问答-------------------- 同意楼上的,应该是GUID --------------------编程问答-------------------- 这是guid,也就是全球唯一的标识 --------------------编程问答-------------------- 同意楼上各位的回答 --------------------编程问答--------------------
上面的就只是一个GUID。
C#中System.Guid.NewGuid()就可以生成一个。
在Sqlserver数据库中 newid() 也可以生成一个。
http://baike.baidu.com/view/185358.htm --------------------编程问答-------------------- guid --------------------编程问答-------------------- 是的这是guid,也就是全球唯一的标识,几乎不会重复算可以用当主键之类唯一标识 --------------------编程问答-------------------- guid

System.Guid.NewGuid() --------------------编程问答-------------------- System.Guid.NewGuid() --------------------编程问答-------------------- #region MD5算法
        /// <summary>
        /// MD5加密(小写)
        /// </summary>
        /// <param name="source">待加密的字符串</param>
        /// <param name="encoding">加密所使用的编码</param>
        /// <param name="code32">指示启用的加密位数,true表示采用32位加密,false表示采用16位加密</param>
        /// <returns>加密后的字符串</returns>
        public static string MD5(string source, string encoding, bool code32)
        {
            try
            {
                //获取md5加密算法的实例
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                //计算md5结果
                byte[] result = md5.ComputeHash(Encoding.GetEncoding(encoding).GetBytes(source));
                if (code32)  //32位加密
                {
                    //因为BitConverter.ToString()方法转换后用"-"连接字节,所以要替换掉
                    return BitConverter.ToString(result).Replace("-", "").ToLower();
                }
                else    //16位加密
                {
                    //转换后的字符串是32位的,取9-24位
                    //BitConverter.ToString(result, 4, 8),意思是从result字节数组的第5个元素开始,共取8个,转换成string
                    //因为转换后的字符串是用16进制表示的,每一个byte转换成16进制后是两位,那么8个byte恰好是8*2=16位
                    return BitConverter.ToString(result, 4, 8).Replace("-", "").ToLower();
                }
            }
            catch
            {
                return string.Empty;
            }
        }

        /// <summary>
        /// utf-8编码的32位MD5加密(小写)
        /// </summary>
        /// <param name="source">待加密的字符串</param>
        /// <returns>加密后的16位字符序列</returns>
        public static string MD5(string source)
        {
            return MD5(source, "utf-8", true);
        }

        /// <summary>
        /// 指定源字符串编码格式的32位MD5加密(小写)
        /// </summary>
        /// <param name="source">待加密的字符串</param>
        /// <param name="encoding">待加密字符串的编码格式</param>
        /// <returns>加密后的32位字符序列</returns>
        public static string MD5(string source, string encoding)
        {
            return MD5(source, encoding, true);
        }

        /// <summary>
        /// utf-8编码的MD5加密(小写),当code32=true时为32位,否则为16位
        /// </summary>
        /// <param name="source">待加密的字符串</param>
        /// <param name="code32">指示启用的加密位数,true表示采用32位加密,false表示采用16位加密</param>
        /// <returns>加密后的字符序列</returns>
        public static string MD5(string source, bool code32)
        {
            return MD5(source, "utf-8", false);
        }
        #endregion




C#中System.Guid.NewGuid()就可以生成一个。
在Sqlserver数据库中 newid() 也可以生成一个。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,