• 一、hash函数介绍
    • 1、说明
    • 2、参数
    • 3、返回值
  • 二、使用
    • 1、前言
    • 2、md5()比较
    • 3、sha1()比较
    • 4、如果要返回 原始二进制呢
  • 三、回到标题
    • 1、默认转为16进制,再转base64
    • 2、先转为二进制,再转base64
    • 3、md5()同理

一、hash函数介绍

1、说明

hash ( string $algo , string $data [, bool $raw_output = FALSE ] ) : string

2、参数

参数名 参数值
algo 要使用的哈希算法,例如:“md5”,“sha256”,“haval160,4” 等。
data 要进行哈希运算的消息
raw_output 设置为 TRUE 输出原始二进制数据, 设置为 FALSE 输出小写 16 进制字符串。

3、返回值

如果 raw_output 设置为 TRUE, 则返回原始二进制数据表示的信息摘要, 否则返回 16 进制小写字符串格式表示的信息摘要。

二、使用

1、前言

  • hash()的第一个参数有些好像是函数名,那打印的结果是不是一样呢,我们来试一下。

2、md5()比较

  • 代码
$string = 123456;
$hashString = hash('md5', $string);
$md5String = md5($string);
echo $hashString . '<br/>' . $md5String;
die;
  • 打印
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
  • 结果
    返回的是16 进制小写字符串格式,并且结果一致

3、sha1()比较

  • 代码
$string = 123456;
$hashString = hash('sha1', $string);
$sha1String = sha1($string);
echo $hashString . '<br/>' . $sha1String;
die;
  • 打印
7c4a8d09ca3762af61e59520943dc26494f8941b
7c4a8d09ca3762af61e59520943dc26494f8941b
  • 结果
    返回的是16 进制小写字符串格式,并且结果一致

4、如果要返回 原始二进制呢

hash()的第3个参数设置为true(默认为false);md5(),sha1()的第2个参数设置为true(默认为null)即可

  • 代码
$string = 123456;
$hashString = hash('md5', $string, true);
$md5String = md5($string, true);
echo $hashString . '<br/>' . $md5String . '<br/>';$string = 123456;
$hashString = hash('sha1', $string, true);
$sha1String = sha1($string, true);
echo $hashString . '<br/>' . $sha1String;
die;
  • 打印

三、回到标题

1、默认转为16进制,再转base64

  • 把字符串先sha1(),默认false/null,返回16进制小写,然后base64_encode的结果为:
  • 代码
$string = 123456;
echo base64_encode(sha1($string)) . '<br/>';
echo base64_encode(hash('sha1', $string)) . '<br/>';
die;
  • 打印
N2M0YThkMDljYTM3NjJhZjYxZTU5NTIwOTQzZGMyNjQ5NGY4OTQxYg==
N2M0YThkMDljYTM3NjJhZjYxZTU5NTIwOTQzZGMyNjQ5NGY4OTQxYg==

2、先转为二进制,再转base64

  • 代码
$string = 123456;
echo base64_encode(sha1($string, true)) . '<br/>';
echo base64_encode(hash('sha1', $string, true)) . '<br/>';
die;
  • 打印
fEqNCco3Yq9h5ZUglD3CZJT4lBs=
fEqNCco3Yq9h5ZUglD3CZJT4lBs=

3、md5()同理

PHP字符串作为字节数组,哈希hash然后base64编码相关推荐

  1. C# 16进制与字符串、字节数组之间的转换

    在串口通讯过程中,经常要用到 16进制与字符串.字节数组之间的转换 字符串转16进制字节数组  1         private static byte[] strToToHexByte(strin ...

  2. scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?

    scala 字符串转换数组 Hex String in Scala denotes value in hexadecimal number system i.e. base 16 number sys ...

  3. c#中将整数转化为字符串_在C#中将字符串转换为字节数组

    c#中将整数转化为字符串 Prerequisite: How to declare and use byte[] in C#? 先决条件: 如何在C#中声明和使用byte []? C#中的字符串到字节 ...

  4. 在C#中将字符串转换为字节数组

    本文翻译自:Converting string to byte array in C# I'm converting something from VB into C#. 我正在将某些东西从VB转换为 ...

  5. JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)

    JavaScript:实现将 base64 字符串转换为字节数组算法 function base64ToBuffer (b64) {// The base64 encoding uses the fo ...

  6. 十六进制字符串与字节数组转换工具

    1.十六进制字符串转字节数组 public static byte[] hexToBytes(String hex) {hex = hex.length() % 2 != 0 ? "0&qu ...

  7. 十六进制字符串与字节数组的转换

    十六进制字符串与字节数组的转换 十六进制(hex):0-9,A-F组成,不区分大小写,与十进制对应关系:0-9对应0-9,A-F对应10-15 位(bit):java语言中1个bit  用0或1表示 ...

  8. java下字符串和字节数组转换

    原文章地址: java下字符串和字节数组转换 http://blog.sina.com.cn/s/blog_7e8c7d560101lwta.html 1.字节数组转换为字符串 byte[] byBu ...

  9. 字符串与字节数组及字符数组的转化

    字符串与字符数组的相互转化 public static void main(String[] args) {String myString = "hello123"; //创建一个 ...

  10. c#将字符串转换为数组,在C#中将字符串转换为字节数组

    先决条件:如何在C#中声明和使用byte []? C#中的字符串到字节数组的转换 在C#中,可以使用Encoding将字符串转换为字节数组.方法,它接受字符串作为参数并返回字节数组.ASCII.Get ...

最新文章

  1. 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!...
  2. 销售易移动CRM助力制造业转型智能制造
  3. 中国人民银行:关于防范代币发行融资风险的公告
  4. 声音处理之-梅尔频率倒谱系数(MFCC)
  5. Linux - alias 定义的变量
  6. [C++调试笔记]执行声明的读写文件操作
  7. 计算器的程序代码java_求用JAVA编写的计算器程序代码
  8. CentOS下安装php gd库报错Error: php56w-common conflicts with php-common-5.3.3-48.el6_8.x86_64
  9. 杨格门锁 YGSLockSDK V3.3酒管软件接口_99v
  10. unity如何得到所有子对象_Unity中获取多级子父节点的对象的两种方式
  11. 【智能路由器】轻量级web服务器lighttpd架设——打造家庭影院
  12. Qt5.X 在Arm上LinuxFB平台旋转显示
  13. Js 把html字符串显示,js Html结构转字符串形式显示代码
  14. c语言for循环语句试讲,C语言For循环试讲教学教案(7页)-原创力文档
  15. 织梦dede源码列表页调用tags标签并带链接的实现方法
  16. PP报工确认bapi:BAPI_PRODORDCONF_CREATE_TT
  17. 孟岩:我反对将Token翻译成“代币”
  18. win10系统excel2019快速实现间隔行填充颜色快捷键的方法
  19. 新入职的程序员如何更快的融入项目当中?
  20. 字号,行距,磅,像素……(word排版)

热门文章

  1. 最长上升子序列(LIS)长度的O(nlogn)算法 (动态规划)
  2. JetBrains(Intellij, pycharm)多行编辑模式
  3. Intellij mac快捷键
  4. Hadoop Partitioner 实战详解
  5. cvtcolor函数_5 OpenCV几个函数操作实例
  6. 中海达ihand30手簿详细教程_开盘秒清,中海这次模拟选房结果恐将成真
  7. java8 时间加一秒_好好讲讲关于Java中的时间处理
  8. unity天气系统_天气系统(一)
  9. vue3 main.js引入 axios_Vue3.0新特性探索
  10. jquery 后代 children, find方法