php数据加密及数据存储和传输
一、前言
个人认为,PHP是世界上为数不多,最人性化的语言。
虽然是二次开发、弱类型语言,由C/C++编写的PHP引擎去解析。但是,其代码优雅性和其运行速度不亚于,其他编译语言。
二、PHP数据加密
数据加密的类型有:
MD5、sha1、sha256、CRC32多项式冗余校验等。
1. MD5、sha1、sha256
描述:hash加密算法,不可逆。常用于数据验证与密码验证。
例如:
<?php
echo md5(md5('123456' . DX))
2. CRC32
描述:多项冗余校验,不可逆。常用于校验数据的完整性,可用于校验目标文件是否修改。
例如:
<?php
$file = realpath('main.js') . filemtime(realpath('main.js') );
echo printf("%x", crc32($file));
注:
因为PHP数值底层存储都是带符号的,这里把值处理成16进制。
如果,main.js文件被修改,则输出结果也会变化;
3. base64_encode和base64_decode
描述:数据压缩加密,可逆。常用于数据加密、传输。通常和strtr函数一起使用。
例如:
<?php
$tr = 'www.baidu.com';
echo base64_encode($tr);
echo '<hr />';
echo strtr(base64_encode($tr), 'c=Z', '-_/');
echo '<hr />';
$rtr = strtr(base64_encode($tr), '-_', 'c=z');
strtr函数描述:
详情请查看php.net
简单介绍:字符串替换。
4. password_hash、password_valid
描述:哈希加密,不可逆。常用于数据加密和认证。
例如:
//算法递归层数
$cost = 4;
//盐值
$salt = '1234567891234567891234';
//指定盐值 最小值22; 指定算法递归层数 最小值4 最大值 25
echo password_hash('123456', PASSWORD_DEFAULT, ['cost' => $cost, 'salt' => $salt]);
echo '<hr />';
echo password_verify('123456', '$2y$06$KfKrG52XutkMN9DcGeczVOVqGCDtMYWHk5BaqH/nu0tX/jjqhTGgO');
解析:
password_hash()
参数一:加密字符串
参数二:加密hash算法,PASSWORD_DEFAULT为默认bcrypt哈希算法。其他关于更多的算法,请百度搜索自行了解一下。
参数三:选项。数组类型,数组元素可选。
cost hash算法递归层数。
salt 哈希算法,加入的盐值,即:干扰字符。
PHP7.0建议,参数二、参数三都为默认值。
password_valid()
hash验证。
三、计算机底层数据存储和传输
一、计算机底层数据存储unicode编码。
a、计算机数据传输为UTF-8编码格式。
b、strlen对存储数据以UTF-8形式转码解析,并以8bit为一个byte进行计算字符单位长度。
c、mb_strlen() 对存储数据以UTF-8形式转码,其参数二为可指定参数。UTF-8、unicode、8bit,默认为UTF-8解析字符单位长度。若计算汉字字符,指定参数二为UTF-8,则该函数以UTF-8计算该字符长度,比如:“代码”,则是两个字节长度。
在unicode协议中,一个中文汉字为2byte。UTF-8协议中一个中文汉字为3byte。所以参数二指定为unicode时,则 “代码” 这串字符为三个单位长度。
四、总结
a. 如果我们做web应用,用于客户端登陆注册验证时,我们可以用MD5、sha1、sha256、password_hash、password_valid等哈希加密验证。
b. 如果我们让目标文件随源文件的更改而改变,那么我们就可以使用CRC32对数据进行加密,生成目标文件。
c. 计算机底层数据存储在Unicode时代,则所有字符都以两个字节存储,那么如果是单字节字符,则补位0。那么UTF-8就作为传输数据的数据编码格式出现在计算机的舞台。我们的PHP底层函数解析,都是以UTF-8的编码协议解析。在Unicode中一个中文汉字为2byte。而UTF-8中,一个中文汉字为3byte 。
参考文献:
https://www.cnblogs.com/leesf456/p/5317574.html
php数据加密及数据存储和传输的更多相关文章
- 探讨.NET Core数据加密和解密问题
前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...
- 大数据时代,Wyn Enterprise和您一起探讨CIO的困境和出路 ZT
这是一篇知识分享帖,如果您致力于成为一名CIO,希望您能够阅读完,信息虽然简略,但我们依然希望可以帮到您. CIO:首席信息官 CIO是干什么的 一.经典的CIO主要负责什么 1.IT战略规划.IT预 ...
- 探讨.NET Core数据进行3DES加密和解密问题
前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...
- 释放数据价值:DAYU数据运营新能力解读
摘要:从比特到信息,这说的其实就是企业数字化转型,让数据的价值充分发挥出来,变成信息. 今天,企业对数据越来越重视,数据已经成为了企业新型的资产,甚至是核心资产,最近流传一句非常有意思的话:从比特到信 ...
- MySQL:用户管理
用户管理部分 一.数据库不安全因素 非授权用户对数据库的恶意存取和破坏: 数据库中重要或敏感的数据被泄露: 安全环境的脆弱性: 二.数据库安全的常用方法 用户标识和鉴别[使用口令鉴别]::该方法由系统 ...
- [工作中的设计模式]装饰模式decorator
一.模式解析 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的要点主要是: 1.需要对已有对象扩展新的功能,又不希望改变原有对 ...
- 介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
以用户为中心的时代,应用的界面外观变得越来越重要.然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易.Ext JS的出现,为广大程序员解决了这一难题.它有丰富多彩的界面和强大的功能,是开发 ...
- Java文件操作①——XML文件的读取
一.邂逅XML 文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输.所以XML在现今应用程序中是非常流行的.本文主要讲Java解析和生成XML.用于不同平台.不同设备间的数据 ...
- RAID对硬盘的要求及其相关
Raid 0:至少需要两块硬盘,磁盘越多,读写速度越快,没有冗余. Raid 1:只能用两块硬盘,两块硬盘的数据互为镜像(写慢,读快),一块磁盘冗余. Raid 5:至少需要3块硬盘,一块磁盘冗余. ...
随机推荐
- 小程序封装一个ajax
小程序中,我们一般习惯把提交接口请求的方法放在一个公共js里面.下面是一个简单实现. (1)我们把所有请求的地址都放在一个json里面 var postAddress = { "domin& ...
- jQuery中的节点操作(一)
html代码如下 <p>Dom操作练习</p> jQuery插入节点 $("p").append("武汉php"); //向每个匹配的元 ...
- Python高级数据类型
除了python中默认提供的几种基本数据类型 collections模块还提供了几种特别好用的类型! 1.Conters //计数器 2.Orderdict // 有序字典 3.defalutdict ...
- Java类与对象初始化的过程(一道经典的面试题)
本文不再以ClassLoader的视角解释这些问题. 首先,Java代码有个特点,就是成员变量可以在前面的方法中使用,在后面定义.这一特性,很多人说Java了不起,可是为什么呢?Java为何能够这样呢 ...
- powershell解决win10开始菜单和通知中心无法打开
然后通过 Ctrl + Shift + Esc 弹出任务管理器点击文件-->运行新任务 在打开的填写框里面输入 "powershell"同时勾选下方的"以管理员身份 ...
- 搭建TFTP服务器配置
实验内容: TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂,开销不大的文件传输服务.TFTP承载在UDP上,提供不可靠的数据传输服务,不提供存取授权与认 ...
- 雷达覆盖,贪心,类似活动安排(POJ1328)
题目链接:http://poj.org/problem?id=1328 解题报告: 1.按照头结点排序. #include <cstdio> #include <cmath> ...
- 宝塔linux面板,修改root密码
root,密码忘记了.但宝塔vps的密码没忘记... 翻完宝塔linux面板都没看到有修改系统root密码的选项,后来尝试定时任务shell,也没成功, 最终快绝望的时候,发现通过添加插件成功修改密码 ...
- 2018年第九届蓝桥杯【C++省赛B组】第四题 测试次数
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机.各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通.x星球 ...
- Next K Permutation
3457: Next K Permutation 时间限制: 1 Sec 内存限制: 128 MB提交: 4 解决: 4[提交] [状态] [讨论版] [命题人:admin] 题目描述 n 个数有 ...