encrypt函数_crypt12

encrypt函数_crypt12数据加密数据加密利用密码技术对信息进行加密,实现信息的隐蔽,从而起到保护信息安全的作用。它通过加密算法和加密秘钥将原来是明文的文件或数据进行处理,使其成文不可读的一段代码,也就是所谓的“密文”,来达到

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数据加密

数据加密利用密码技术对信息进行加密,实现信息的隐蔽,从而起到保护信息安全的作用。它通过加密算法和加密秘钥将原来是明文的文件或数据进行处理,使其成文不可读的一段代码,也就是所谓的“密文”,来达到保护数据的安全性。

Crypt()函数

crypt()函数返回使用DES、Blowfish或MD5算法加密的字符串。在不同的操作系统上,crypt()函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP回忆检查什么算法可用以及使用什么算法。

crypt()函数的语法:

string crypt(string str[,string salt]);

参数str:必需。是需要加密的字符串。

参数salt:可选。用于增加被加密字符数目的字符串(干扰串),以使字符更加安全。若没有提供salt参数,每次调用该函数时会随机生成一个干扰串。

crypt()函数的算法:

[CRYPT_SALT_LENGTH] 默认的加密长度。使用标准的 DES 加密,长度为 2
[CRYPT_STD_DES] 基于标准 DES 算法的散列使用 “./0-9A-Za-z” 字符中的两个字符作为盐值。在盐值中使用非法的字符将导致 crypt() 失败。
[CRYPT_EXT_DES] 扩展的基于 DES 算法的散列。其盐值为 9 个字符的字符串,由 1 个下划线后面跟着 4 字节循环次数和 4 字节盐值组成。它们被编码成可打印字符,每个字符 6 位,有效位最少的优先。0 到 63 被编码为 “./0-9A-Za-z”。在盐值中使用非法的字符将导致 crypt() 失败。
[CRYPT_MD5] MD5 散列使用一个以 $1$ 开始的 12 字符的字符串盐值。
[CRYPT_BLOWFISH] Blowfish 算法使用如下盐值:“$2a$”,一个两位 cost 参数,“$” 以及 64 位由 “./0-9A-Za-z” 中的字符组合而成的字符串。在盐值中使用此范围之外的字符将导致 crypt() 返回一个空字符串。两位 cost 参数是循环次数以 2 为底的对数,它的范围是 04-31,超出这个范围将导致 crypt() 失败。
CRYPT_SHA256 SHA-256 算法使用一个以 $5$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 “rounds=<N>$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值。
CRYPT_SHA512 SHA-512 算法使用一个以 $6$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 “rounds=<N>$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值。

在该函数支持多种算法的系统上,如果支持上述常量则设置为 “1”,否则设置为 “0”。

<?php
         $str="This is example";   
         echo '加密前的值为:'.$str;
         $crypttostr=crypt($str);
         echo '<p>加密后$str的值为:'.$crypttostr;
 ?>

运行结果如图显示:

encrypt函数_crypt12

encrypt函数_crypt12

从两幅运行结果图可以发现,刷新之后生成的加密结果都不相同,这就对加密后的数据进行判断就成了一个问题。而我们也知道crypt()函数是单向函数,密文不可以还原成明文。且每次加密后的数据都不相同,这就是salt参数要解决的问题。crypt()函数用salt参数对明文进行加密,判断时,对输出的信息再次使用相同的salt参数进行加密,对比两次加密后结果的判断。

 注:crypt()函数没有相应的解码函数,它是一种单向加密函数。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166923.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python if用法_if语句的用法例子

    Python if用法_if语句的用法例子if语句的语法及其实例等…..

    2022年9月26日
    2
  • JAVA 分布式 – 分布式介绍[通俗易懂]

    JAVA 分布式 – 分布式介绍[通俗易懂]什么是分布式系统?要理解分布式系统,主要需要明白一下2个方面:1.分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。2.这些连通的节点上部署了我们的节点,并且相互的操作会有协同。分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看…

    2022年4月26日
    51
  • VS2010安装失败

    我的情况和http://blog.csdn.net/gtatcs/article/details/8770025类似:安装提示错误:然后 尝试单独安装.net4.0.NETFramework4.0安装失败原因是HRESULT0xc8000222,截图如下:搜索“.netframework4.00xc8000222”的解决办

    2022年4月7日
    45
  • 纯CSS画三角形

    纯CSS画三角形之前遇到过的问题如果查了然后懂了,然后没有及时复盘思考,就很容易还回去,今天把许久之前的这个知识点再整理一下,一是加深自己的记忆,二也是让初学者更容易懂。首先,创建一个空的div&lt;divclass="triangle"&gt;&lt;/div&gt;然后,CSS处理它的边框,给它不一样的颜色,好观察.triangle{border-left:100pxs…

    2022年6月24日
    25
  • Databus 深入学习

    Databus 深入学习一、关于databusLinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制恢复能力及丰富的数据深度处理功能。二、基于da…

    2022年10月10日
    5
  • CLion 2021.10.1激活码-激活码分享

    (CLion 2021.10.1激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号