好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

关于scryptphp的信息

很多站长朋友们都不太清楚scryptphp,今天小编就来给大家整理scryptphp,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 关于php des 加密 密钥长度问题 2、 夸克区块链 3、 莱特币是什么 4、 PBKDF2函数,比「Hash加盐」更好的口令保护方案 关于php des 加密 密钥长度问题

php5.6的key长度要求是32字节的,你这个明显不满足要求的。

参考以下写法:

<?php

# --- ENCRYPTION ---

# the key should be random binary, use scrypt, bcrypt or PBKDF2 to

# convert a string into a key

# key is specified using hexadecimal

$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

# show key size use either 16, 24 or 32 byte keys for AES-128, 192

# and 256 respectively

$key_size = strlen($key);

echo "Key size: " . $key_size . "\n";

$plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

# create a random IV to use with CBC encoding

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);

$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

# creates a cipher text compatible with AES (Rijndael block size = 128)

# to keep the text confidential

# only suitable for encoded input that never ends with value 00h

# (because of default zero padding)

$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,

$plaintext, MCRYPT_MODE_CBC, $iv);

# prepend the IV for it to be available for decryption

$ciphertext = $iv . $ciphertext;

# encode the resulting cipher text so it can be represented by a string

$ciphertext_base64 = base64_encode($ciphertext);

echo $ciphertext_base64 . "\n";

# === WARNING ===

# Resulting cipher text has no integrity or authenticity added

# and is not protected against padding oracle attacks.

# --- DECRYPTION ---

$ciphertext_dec = base64_decode($ciphertext_base64);

# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()

$iv_dec = substr($ciphertext_dec, 0, $iv_size);

# retrieves the cipher text (everything except the $iv_size in the front)

$ciphertext_dec = substr($ciphertext_dec, $iv_size);

# may remove 00h valued characters from end of plain text

$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,

$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

echo $plaintext_dec . "\n";

?>

夸克区块链

夸克区块链(Quarkblockchain/QKI)是Chance Boat Internet Technology Ltd (Seychelles) 主导开发和维护的区块链项目。

本项目17年11月底开始开发,2018年2月8日正式上线,已经有上万名活跃用户。

夸克区块链是世界上第一款基于PHP开发/运行的区块链,数据交换使用http+json,存储层使用mysql,加密使用比特币钱包协议。

夸克区块链的目标是提供一个分布式web、文件网络平台,让开发者可以在这个网络平台开发、运行DApp。

夸克区块链官网:

莱特币是什么

Litecoin(中文译名:莱特币)是一种基于“点对点”(peer-to-peer)技术的网络货币,它可以帮助用户即时付款给世界上任何一个人。Litecoin受到了比特币(BTC)的启发,并且在技术上具有相同的实现原理,Litecoin的创造和转让基于一种开源的加密协议,不受到任何中央机构的管理。

;redirect_uri=http%3A%2F%2Fapi.m.duoku测试数据%2Fopenlogin%2Flogin.php%3Fa%3Dcallback%26type%3Dbaiduresponse_type=codedisplay=mobileqq-pf-to=pcqq.c2c

PBKDF2函数,比「Hash加盐」更好的口令保护方案

在前面两篇文章中,对用户口令进行加密的方式其实称为 Password-based encryption (PBE),算法实现很简单,那是不是有更好和更标准的 PBE 实现呢?

基于 Hash+salt 的算法最大的问题在于 Hash 函数的运算太快了,虽然加盐让暴力攻击和彩虹表攻击的可行性大大减低,但现在攻击者能在非常快速的硬件(包括 GPU)上运行,如果 时间足够 ,还是有很大几率完成暴力破解。

那有没有更好的解决方案吗?如果让口令运算运算的慢一点,那么攻击者破解的速度也将上不去,这样是否就能更好的保护明文口令?

在密码学中,key derivation function (KDF) 函数非常重要,它可以通过一个 master key(在 HTTPS 中用的非常多)、口令(password)、passphrase(密码学随机数生成器)生成一个或多个强壮的密钥,这些密钥本身被密码学算法使用(比如 AES、RSA 等等)。

用户的口令通过 PBF(前两篇文章讲解的算法实现)生成的口令密文不是密钥,所以最终结果不是用于密码学用途,是为了避免口令被破解,但本质上 BPF 算法也可以通过 KDF 函数实现,也就是利用 KDF 函数生成口令密文。

KDF 同样基于 Hash 函数,也有 salt 机制,当然最重要的是有 迭代因子 这个概念,有了迭代因子,会让处理速度变慢,减少爆破风险。

KDF 主要有三种实现,分别是 PBKDF2、bcrypt、scrypt ,这篇文章主要讨论 PBKDF2。

稍微休息下,希望大家理解上述概念之间的区别。

KDF 本质上属于 Key stretching、key strengthening,如果你了解 HTTPS,那么可能比较熟悉,比如在握手阶段,HTTPS 将 Premaster Secret 和客户端服务器端的随机数导出为 Master Secret,然后再将 Master Secret 导出为多个密钥块,这些密钥块包含 AES 的加密密钥或者初始化向量,用户后续通信数据的加密和完整性保护。

PBE 算法标准定义在 RFC 2898 文档中,大概的公式如下:

如果 c 的数值越大,那么运算速度就越慢,增加了时间复杂度,攻击者破解的成功率就会下降。

使用 PHP 语言说明 PBKDF2 函数的使用:

对这个过程循环2000次,总共需要 16秒 ,而如果运行简单的 Hash+salt,循环2000次,运行时间不到 0.1秒 。

从这个角度看,建议大家使用 PBKDF2 保护你的口令,但现在业界的保护口令的标准算法是 bcrypt ,下一篇文章会讲解。

口令保护系列文章:

了解我的书 《深入浅出HTTPS:从原理的实战》 ,如果觉得还不错,还请在豆瓣上做个评论(地址: )。

关于scryptphp的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于关于scryptphp的信息的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did242253
更新时间:2023-05-28   阅读:16次

上一篇: php怎么定义长度 php中定义常量的两种方法

下一篇:php实现hash函数 php哈希表

最新资料更新

  • 1.php显示字段内容 php限制显示字数
  • 2.php拼音模糊查询 php模糊搜索功能
  • 3.学php学什么专业 学php可以干什么工作
  • 4.php判断是否为蜘蛛 php怎么判断是不是数字
  • 5.php5.4.13的简单介绍
  • 6.php操作redis存值 php redis数据类型
  • 7.php课堂系统 php网课系统
  • 8.php显示json php显示客户端ip和服务器ip
  • 9.php俄罗斯方块 俄罗斯方块的网址
  • 10.php订单管理功能 php订单提醒功能
  • 11.php数据库名字大小写 php函数名称区分大小写吗
  • 12.php毫秒间隔 php时间距离现在
  • 13.vip影院php后台版 vip影视电视剧电影
  • 14.php短信android Php短信对接视频
  • 15.php页面加ico php嵌入网页
  • 16.hbuilder写php hbuilder写PHP
  • 17.php接收tcp数据 php tcp udp
  • 18.最新php环境搭建 最新php环境搭建方案
  • 19.php基于iis php+iis
  • 20.php获取数组坐标 php获取数组的值

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]