c#和php对字串MD5值解释不一样,头疼!

{set_time_limit(0);

md5(md5("admin"))我认为是这个表达式有问题,你分开写试试,因为不同的语言、编译器 在处理这种表达式时顺序可能不一样。

phpmd516位 php 16位md5phpmd516位 php 16位md5


phpmd516位 php 16位md5


赞同: rail_fiprotected string UserMd5(string str1)sh

这应该是编码的问题。即使是同一个字符串"admin",用gbk和utf-8存放。那它们的散列值肯定是不一样的!

10 个经典PHP函数

recur()

1.

wangwei321

sys_getloadg()

sys_getloadt()可以获得系

统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。

与其让因负

载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadg()就是用来帮你实现这个功能的。

不过很遗憾,该函数在windows下无效。

2.

pack()

Pack()

能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。

3.

cal_days_in_month()

cal_days_in_month()能够返回指定月份共有多少天。

4.

_()

WordPress开发者经常能见到这个函数,还有

_e()。这两个函数功能相同,与gettext()函数结合使用,能实现网站的多语言化。具体可参见PHP手册的相关部分介绍。

5.

在发送页面前先看看用户的浏览器都能做些什么是

不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给

函数做参考文件。

要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的。例如,如果用户关闭了浏览器对

JaScript的支持,函数无法得知这一点。但是在判断浏览器类型和OS平台方面,该函数还是很准确的。

debug_print_backtrace()

这是一个调试用的函数,能帮助你发现代码中的逻辑错误。要理

解这个函数,还是直接看个例子吧:

$a

=0;

function

{global

$a;

$a

<10

)recur();

echo

$a

.“,

“;

}function

{global

$a;

$a++;

//

did

Iget

here?

echo

“nnn”;

$a

<10

)iterate();

}iterate();

called

#1

called

[C:htdocsphp_stuffindex.php:25]

called

#1

called

[C:htdocsphp_stuffindex.php:21]

#2

called

#3

called

[C:htdocsphp_stuffindex.php:25]

called

#1

called

[C:htdocsphp_stuffindex.php:21]

#2

called

#3

called

[C:htdocsphp_stuffindex.php:21]

#4

called

#5

called

[C:htdocsphp_stuffindex.php:25]

7.

metaphone()

这个函数返回单词的metaphone值,相同读音的单词具有相同的metaphone值,也就是说这个函数可以帮你判断两个单词的读音是否

相同。不过对中文就无效了。。。

8.

natsort()

natsort()能将一个数组以自然排序法

进行排列,直接看个例子吧:

$s

=array(

“100

apples”,

“5

apples”,

“110

apples”,

“55

apples”

);

//

normal

sorting:

sort($s);

print_r($s);

#Outputs:

#Array

#(

#[0]

=>

100

#[1]

=>

110

#[2]

=>

5apples

#[3]

=>

55

#)

natsort($s);

print_r($s);

#Outputs:

#Array

#(

#[2]

=>

5apples

#[3]

=>

55

#[0]

=>

100

#[1]

=>

110

#)

9.

Lnshtein()

告诉你两个单词之间的“距离”。它告诉你如果想把一个单词变成另一个单词,需要插入、替换和删除多少字母。

看个例子吧:

$dictionary

=array(

“php”,

“jascript”,

“css”

);

$word

=“japhp”;

$best_match

=$dictionary[0];

=lnshtein($dictionary[0],

$word);

foreach($dictionary

as

$w)

{$value

$w);

$value

<$match_value

){

$best_match

=$w;

=$value;

}}

echo

“Did

you

mean

‘$best_match'

category?”;

10.

glob()

glob()会让你觉得用

readdir()和closedir()来寻找文件非常蠢。

foreach

(glob(“.php”)

as

$file)

echo

“$filen”;

在php5中md5在加密字符串后如何解密

$key = md5($key);

MD5加密是不能逆运算的,现在的大都是穷尽法,就是有一个庞大的MD5码对照表放在那里,然后一个一个去对照着查。

md5是没有办法解密得,因为他不是对数据进行加密,只是做了一个摘抄,只取了数据得一部分

试想 一个200个字节得字符串 经两者是一样的.都是取散列值过md5加密后得到的只是32位的数据,你怎么取还原哦???

PHP里没有md5的函数。。不过

关于php 类似md5那种加密出来全小写混合数字但是可以解密的函数有没有

lnshtein()

可以使用字符串到16进制和16进制到字符串实现

你可以自己改一下数据库里面密码的信息嘛

echo str_encode("哈123abc-=/-+=");//显示:B9FE3132336162632D3D2F2A2D2B3D

echo str_decode("B9FE3132336162632D3D2F2A2D2B3D");//显示:哈123abc-=/-+=

function str_encode($string){ //字符串转十六进制

$hex="";

for($i=0;$i

$hex.=dechex(ord($string[$i]));

$hex=strtoupper($hex);

return $hex;

}function str_decode($hex){//十六进制转字符串

$string="";

for($i=0;$i

$string.=chr(hexdec($hex[$i].$hex[$i+1]));

return $string;

}

function enCp($key, $str){

$str = base64_encode($str);

$key1 = substr($key, 0, 15);

$key2 = substr($key, 15);

$str = $key1.$str.$key2;

return base64_encode($str);

}function deCp($key, $str){

$key1 = substr($key, 0, 15);

$key2 = substr($key, 15);

return base64_decode(str_replace(array($key1, $key2), '', base64_decode($str)));

} 如上两个函数是我常用的函数,供参考。

关于PHP使用md5加密文字的问题

这种方式专业成为表单令牌,系统会根据 特定规则来生成md5形式的token,并将tokUPDATE 的表段名称 SET 密码字段名称='密码12345的md5ea所谓的16位只是32位中取出了其中的一半而已,所以,直接就可以对二者进行匹配。8a706c4c34a168' WHERE ID=1en放置在表单当中

这种方式一般使用在表单提交过程中,防止表单重复提交等安全防护

示例的话可以翻看下thinkphp的安全令牌的相关说明以及代码,代码很也很好理解

md5在线解密(16位)

别人弄你网站的话,这样的md5基本无解。

744c5d1opendir(),87422309e

虽然不知道你是不是被别人盗了网站,但希望仔细看你不要做坏事。

密码:wangwei321

如何用PHP把密码转成MD5再替换MD5的字符存入数据库?下次登录的时候再调用这个方式对比数据库里的数据?

at

$_POST[password] 这样写也可以,但是速度稍微慢点,严谨的要加单引号$_P长处拜肺之镀瓣僧抱吉OST[debug_print_backtrace();’password‘];

你数据库设置的保存20位的长度!所以在数据库里面看到的是20位。正常的md5是32位

接收密码的时候就使用双MD5加密 入库 密码字段长度 char类型 32位

说能说清楚C#md5和php md5加密技术的区别,以实例说明

但是作为民用,比如文件鉴别码,密码保护等等

MD5加密都是使用的一样的规格 不然同样数值得到的结果不就会不一样了吗。那还能分辨是MD5加密吗

{// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符

如果你想使用C# MD5加密数据 其实是不用自己写转换公式的

C#已经提供了对象 只需要声明使用就行了

using System.Security.Cryptography;

using System.Text;

#region 加密密码,UserMd5(string str1)

{string cl1 = str1;

string pwd = "";

MD5 md5 = MD5.Create();

// 加密后是一个字节类型的数组

byte[] s=md5.ComHash(Encoding.Unicode.GetBytes(cl1));

// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得

for(int i = 0 ; i < s.Length; i++)

pwd = pwd + s[i].ToString("x");

}return pwd;

}#endregion

以下是数据库中使用的关键代码

string resultPass = System.Text.UTF8Encoding.Unicode.GetString(by);

conn.ConnectionString=strConn;

SqlCommand comm = new SqlCommand();

string name = texName.Text.Trim().ToString();

comm.CommandText="select Ruser_pwd,Ruser_nm from Ruser where Accountno = @name";

comm.Parameters.Add("@name",SqlDbType.NVarChar,40);

comm.Parameters["@name"].Value=name;

我想问一下MD5加密现在分为16位和32位,有什么不同

get_browser()

16位的,其实就是吧32位的头尾砍掉,在上,有专门的网站都不怕的,

目前有xmd5还有国外的一些都有密码库$row=array('sn'=>$sn,'password'=>$str,'created'=>time(),'point'=>$point);和他的帮你跑,不过32位似乎更高~

我现在调用的MD5加密后是32位的,怎样让它是16位的呢?

at

可以.16位变32位不知道,32位变16位倒是可以。

以下是C#的例子

function ComparePassword(str1, str2)

'这里自己写吧.......一点都不难

end function

用此函数来代替传统的相等比较匹配即可。