PHP数据加密技术

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

crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 

第一个为需要加密的字符串,第二个为盐值(就是加密干扰值,如果没有提供,则默认由PHP自动生成);返回散列后的字符串或一个少于 13 字符的字符串,后者为了区别盐值。

其中使用盐值的意思是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。

在 crypt() 函数支持多重散列的系统上,下面的常量根据相应的类型是否可用被设置为 0 或 1:

 

 

每一个常量的使用方式:

CRYPT_STD_DES - 基于标准 DES 算法的散列使用 "./0-9A-Za-z" 字符中的两个字符作为盐值。在盐值中使用非法的字符将导致 crypt() 失败。 

<?php
$p = "123456";
if(CRYPT_STD_DES){
    echo crypt($p,"456");
}
?>

 

“456”中只有45这两个字符起作用

 

CRYPT_EXT_DES - 扩展的基于 DES 算法的散列。其盐值为 9 个字符的字符串,由 1 个下划线后面跟着 4 字节循环次数和 4 字节盐值组成。它们被编码成可打印字符,每个字符 6 位,有效位最少的优先。0 到 63 被编码为 "./0-9A-Za-z"。在盐值中使用非法的字符将导致 crypt() 失败。 

<?php
if (CRYPT_EXT_DES == 1) {
    echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}
?>

 

CRYPT_MD5 - MD5 散列使用一个以 $1$ 开始以$结束的 12 字符的字符串盐值。 

<?php
if (CRYPT_MD5 == 1) {
    echo 'MD5:          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}
?>

 

CRYPT_BLOWFISH - Blowfish 算法使用如下盐值:"$2a$",一个两位 cost 参数,"$" 以及 64 位由 "./0-9A-Za-z" 中的字符组合而成的字符串。在盐值中使用此范围之外的字符将导致 crypt() 返回一个空字符串。两位 cost 参数是循环次数以 2 为底的对数,它的范围是 04-31,超出这个范围将导致 crypt() 失败。 PHP 5.3.7 之前只支持 "$2a$" 作为盐值的前缀,PHP 5.3.7 开始引入了新的前缀来修正一个在Blowfish实现上的安全风险。总而言之,开发者如果仅针对 PHP 5.3.7及之后版本进行开发,那应该使用 "$2y$" 而非 "$2a$" 

 

<?php
if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}
?>

 

CRYPT_SHA256 - SHA-256 算法使用一个以 $5$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 "rounds=<N>$" 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值。 

<?php
if (CRYPT_SHA256 == 1) {
    echo 'SHA-256:      ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

 

CRYPT_SHA512 - SHA-512 算法使用一个以 $6$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 "rounds=<N>$" 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值。 

<?php
if (CRYPT_SHA512 == 1) {
    echo 'SHA-512:      ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

 

 

 

 

 

 

 



PHP数据加密技术之一---CRYPT()加密相关推荐

  1. 端到端加密优缺点_网络通信中常见的数据加密技术探析

    前言 目前在各行各业中都广泛使用计算机网络通信技术,计算机网络已成为人们生活中不可或缺的重要内容,人们对计算机网络的依赖性不断提高,计算机网络通信的安全性受到越来越多的关注.数据加密技术是保障计算机网 ...

  2. 【安全加密技术】非对称加密

    转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46810595 看过上篇网络互联基系列基础的朋友,对安全产生的原因以及策略度有所了解 ...

  3. 在数据库技术中脏数据是指_数据库安全关键技术之数据库加密技术

    数据库加密作为近年来兴起的数据库安防技术,已经被越来越多的人所重视.这种基于存储层加密的防护方式,不仅可以有效解决数据库明文存储引起的泄密风险,也可以防止来自内部或者外部的入侵及越权访问行为. 从技术 ...

  4. ORACLE TDE 透明数据加密技术

    从ORALE 10GR2开始出现透明数据加密技术(Transparent Data Encryption,TDE) TDE用来对数据加密,通常 SQL 执行的应用程序逻辑不需要进行更改,仍能正常运行. ...

  5. 数据加密技术在计算机网络安全中的应用实例,数据加密技术在计算机网络安全中的应用.doc...

    数据加密技术在计算机网络安全中的应用.doc 数据加密技术在计算机网络安全中的应用 摘 要:社会信息技术不断发展,随着计算机技术和网络的普及,网络生活成为了人们日常活动.网络的开放性使得人们获取信息的 ...

  6. PHP 常见的数据加密技术

    单项散列加密技术(不可逆的加密) 把任意长的输入字符串变化为固定长的输出串的一种函数 MD5 string md5 ( string $str [, bool $raw_output = false ...

  7. 计算机网络信息安全技术研究论文,v计算机网络信息安全的数据加密技术论文...

    v计算机网络信息安全的数据加密技术论文 摘要:21世纪是计算机飞速发展的黄金时代,计算机网络已经成为人们不可或缺的信息交流工具.由于计算机网络信息的开放性和互联性,导致了计算机网络信息存在着极大的安全 ...

  8. 凌科芯安浅谈 数据加密技术及其应用

    伴随电子.计算机技术的发展与应用, 信息安全越来越受到高度的重视.数据加密技术就是用来保证信息安全的基本技术之一.数据加密技术实质是一种数据形式的变换, 发送方把数据和信息(称为明文)通过算法加密后变 ...

  9. 数据加密技术知识点大盘点

    一. 什么是数据加密? 信息化时代,信息化本身就是一把双刃剑,一方面它为我们的生产.生活带来好处,另一方面,信息泄露也会给我们带来极大的威胁.所以,客观上,必须有强有力的安全措施,防止机密数据被窃取或 ...

最新文章

  1. “搞垮” 微博服务器?每天上亿条用户推送是如何做到的
  2. 自学必看篇:从零基础到精通的Python学习路线(附加教程)
  3. 汉芯一号、木兰语言再到天赐 OS,国产基础软件十年泣血,梦想何圆?
  4. PHP 语言结构(Language constructs)和函数的区别
  5. iOS中的两种搜索方式UISearchDisplayController和UISearchController
  6. golang 操作 ini配置文件
  7. pthread_mutex_lock用法
  8. php 字符串内容过滤,php过滤字符串内容的
  9. 酷我音乐盒里的MV怎么下载
  10. html图片编辑器插件,js图片编辑器插件Filerobot
  11. CF1152 F. Neko Rules the Catniverse (dp)
  12. OSPF区域间路由计算规则与实验
  13. mysql的本地id可以随便设置马_Mysql主从复制原理及搭建
  14. 10慕课网《进击Node.js基础(一)》初识promise
  15. 声网实时连麦互动助力CCtalk万人互动课堂
  16. 选择OA,终极“避雷”方法来啦!
  17. 大战在即!手机芯片巨头“All in”智能汽车,5G只是冰山一角
  18. python是一种语言吗-python是一种什么类型的语言
  19. Markdown 中设置文本字体为红色(改变字体颜色)的方法
  20. win10查看打印机端口

热门文章

  1. 热水器php2p3代表什么,热水器p1p2p3什么意思
  2. iPhone12蜜汁操作,环保还是揽财?
  3. 斗鱼直播Android开发二面被刷,好文推荐
  4. 汤道生对话亚马逊CTO:安全不只是技术,要从战略视角系统构建
  5. Java基于JSP二手书交易平台设计与实现
  6. Vue前端Es6语法Object.assign()
  7. 高新技术产业的股权设计原则
  8. Mac没有winnt格式_The Unarchiver 4.1.0 一款免费的全能格式解压工具
  9. 皖西学院计算机专业男女比例,2018全国高校男女比例排行榜出炉!哪所大学最难找对象?...
  10. mysql 注入关键字waf_利用mysql的隐式类型转换绕过waf注入