PHP中的加密方式如下MD5加密字符串md5(string$str[,bool$raw_output=false])参数str--原始字符串。raw_output–如果可选的raw_output设置为TRUE,则MD5消息摘要将以原始二进制格式返回,长度为16字节。这是一个不可逆的加密,执行下面的代码$password='123456';echomd5($密码);结果是e10adc3949ba59abbe56e057f20f883eCrype加密字符串crypt(string$str[,string$salt])crypt()返回基于标准的UNIXDES算法哈希字符串,或系统上可用的其他替代算法。参数str--要散列的字符串。salt--可选的盐字符串。如果不提供,算法行为将由不同的算法实现决定,并可能导致不可预知的结局。这也是一种不可逆的加密,执行下面的代码复制密码代码如下:$password='123456';$salt="test";//只取前两个echocrypt($password,$salt);结果是teMGKvBPcptKo使用自动加盐值的例子如下:复制代码代码如下:$password=crypt('mypassword');//自动生成salt值/密码验证时应该使用crypt()得到的完整结果作为salt值,避免使用不同的hash算法带来的问题。(如上所述,基于标准DES算法的密码哈希使用2个字符的盐,但基于MD5的哈希使用12个字符的盐。)/if(crypt('mypassword',$password)==$password){echo"Passwordverified!";}执行结果输出Passwordverified!使用具有不同哈希类型的crypt()的示例如下:如下所示:if(CRYPT_STD_DES==1){echo'StandardDES:'.地穴('rasmuslerdorf','rl')。"\n";}if(CRYPT_EXT_DES==1){echo'ExtendedDES:'.地穴('rasmuslerdorf','_J9..rasm')。"\n";}if(CRYPT_MD5==1){echo'MD5:'.crypt('rasmuslerdorf','$1$rasmusle$')."\n";}if(CRYPT_BLOWFISH==1){echo'Blowfish:'.crypt('rasmuslerdorf','$2a$07$usesomesillystringforsalt$')。"\n";}if(CRYPT_SHA256==1){echo'SHA-256:'.crypt('rasmuslerdorf','$5$rounds=5000$usesomesillystringforsalt$')."\n";}if(CRYPT_SHA512==1){echo'SHA-512:'.crypt('rasmuslerdorf','$6$rounds=5000$usesomesillystringforsalt$')。"\n";}其结果如下StandardDES:rl.3StKT.4T8MExtendedDES:_J9..rasmBYk8r9AiWNcMD5:$1$rasmusle$rISCgZzpwk3UhDidwXvin0Blowfish:$2a$07$usesomesillystringfore2uDLvp1Ii2e./UpC89sBjdH6hiSHA-256:$5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6SHA-512:$6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21在crypt()函数支持多重散列的系统上,下面的常量根据对应类型是否可用设置为0或1:CRYPT_STD_DES-基于标准DES算法的散列使用“./0-9A-Za-z”字符串中的两个字符作为盐值非法使用在盐值字符中将导致crypt()失败。CRYPT_EXT_DES-基于扩展DES算法的散列。它的盐值是一个9字符的字符串,由一个下划线、后跟一个4字节的循环计数和一个4字节的盐值组成。它们被编码为可打印字符,每个6位,最低有效位在前。0到63被编码为“./0-9A-Za-z”。在salt中使用非法字符将导致crypt()失败。CRYPT_MD5-使用以$1$开头的12个字符的字符串salt的MD5散列。CRYPT_BLOWFISH-Blowfish算法使用以下盐值:“$2a$”、两位成本参数、“$”和来自“./0-9A-Za-z”的64位字符串。在salt中使用超出此范围的字符将导致crypt()返回空字符串。两位数的cost参数是循环次数的以2为底的对数,取值范围是04-31。如果超出此范围,crypt()将失败。CRYPT_SHA256-SHA-256算法使用以$5$开头的16个字符的字符串salt进行散列。如果salt字符串以“rounds=
echourldecode($encodeUrl);结果如下http%3A%2F%2Fwww.xxx。com%2FCraryPrimitiveMan%2Fhttp://www.xxx.com/CraryPrimi...基于RFC3986加密URL的方法如下:复制代码代码如下:functionmyUrlEncode($string){$entities=array('%21','%2A','%27','%28','%29','%3B','%3A','%40','%26','%3D'、'%2B'、'%24'、'%2C'、'%2F'、'%3F'、'%25'、'%23'、'%5B'、'%5D');$replacements=array('!','*',"'","(",")",";",":","@","&","=","+","$",",","/","?","%","#","[","]");returnstr_replace($entities,$replacements,urlencode($string));}Base64信息编码加密字符串base64_encode(string$data)使用base64对数据进行编码。这种编码旨在使二进制数据可以通过非纯8位传输层传输,例如电子邮件的正文。Base64编码的数据比原始数据多占用大约33%的空间。stringbase64_decode(string$data[,bool$strict=false])解码base64编码数据。参数数据——编码数据。strict–如果输入数据不在base64字母表中,则返回FALSE。执行以下代码:复制代码如下:$name='CraryPrimitiveMan';$encodeName=base64_encode($name);echo$encodeName。"n";echobase64_decode($encodeName);结果如下复制代码如下:Q3JhcnlQcmltaXRpdmVNYW4=CraryPrimitiveMan推荐phpass使用phpass0.3测试,它是在将用户密码存储到数据库之前通过散列来保护用户密码的标准方法。许多常用的哈希算法(如md5甚至sha1)对于密码存储来说都是不安全的,因为黑客可以使用这些算法轻松破解密码。散列密码最安全的方法是使用bcrypt算法。开源phpass库在一个易于使用的类中提供了此功能。复制代码代码如下:HashPassword('我的超酷密码');//你现在可以安全地将$hashedPassword保存到数据库中了!//通过比较用户输入的内容(生成的哈希值)和我们之前计算的哈希值来判断用户是否输入了正确的密码$hasher->CheckPassword('密码错误',$hashedPassword);//false$hasher->CheckPassword('我的超酷密码',$hashedPassword);//true?>以上就是本文对PHP加密方式的介绍,希望大家喜欢。
