PHP的openssl加密扩展使用小结】的更多相关文章

h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child { margin-top: 0; padding-top: 0; } a:first-child h1, a:first-child h2, a:first-child h3, a:fi…
1.检查服务器是否已安装了openssl组件,没有则先安装好 openssl version [-a] 2.对称加密 查询openssl支持的对称加密算法 openssl_get_cipher_methods(); 加密:openssl_encrypt($data, $method, $passwd, $options, $iv); 参数说明: $data: 加密明文 $method: 加密方法 $passwd: 加密密钥 $options: 数据格式选项(可选) $iv: 加密初始化向量(可选…
我们已经学过不少 PHP 中加密扩展相关的内容了.而今天开始,我们要学习的则是重点中的重点,那就是 OpenSSL 加密扩展的使用.为什么说它是重点中的重点呢?一是 OpenSSL 是目前 PHP 甚至是整个开发圈中的数据加密事实标准,包括 HTTPS/SSL 在内的加密都是它的实际应用,二是 OpenSSL 提供了对称和非对称加密的形式,也就是我们日常中最普遍的两种加密方式,这都是我们需要掌握的内容. 那么,它和 Hash 类的加密有什么不同吗?Hash 类的加密是单向的不可逆转的加密,加密后…
关于对称和非对称的加密操作,我们已经学习完两篇文章的内容了,接下来,我们就继续学习关于证书的生成. 生成 CSR 证书签名请求 CSR 是用于生成证书的签名请求,在 CSR 中,我们需要一些 dn 信息.其实也就是当前这个证书的服务对象,包含公司名.邮箱之类的内容. $privkey = openssl_pkey_new([ "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE…
上篇文章,我们了解了关于对称和非对称加密的一些相关的理论知识,也学习了使用 OpenSSL 来进行对称加密的操作.今天,我们就更进一步,学习 OpenSSL 中的非对称加密是如何实现的. 生成私钥 通过之前的学习,我们知道非对称加密是分别需要一个公钥和一个私钥的.我们就先来生成一个私钥,也就是存放在我们这一端一个密钥.请记住,在任何时候,私钥都是不能给别人的哦! $config = array( "private_key_bits" => 4096, // 指定应该使用多少位来生…
PHP的openssl扩展 openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的PHP函数,极大地方便了对数据的加密解密. 常用的函数有: 对称加密相关: string openssl_encrypt(string $data , string $method , string $password[, $options, $iv]) 其中$data为其要加密的数据,$method是加密要使用的方法,$password是要使用的密匙,函数返回加密后的数据: 其中$metho…
OpenSSL加密证书一般用于签名认证,含私钥和公钥.在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用.而在Windows系统中,是需要安装使用的. 最近在使用支付平台时,用到了OpenSSL,鉴于此分享给大家,步骤如下: 安装OpenSSL 1.前往官方指定下载地址http://slproweb.com/products/Win32OpenSSL.html下载所需版本 2.一般安装路径在C盘根目录,也可自行选择 3.安装过程中会出现生成证书所存放的路径,可默认到bin,也可自…
在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件:在高版本的PHP中,Windows下似乎默认开启了mcrypt的扩展,既不需要在配置文件php.ini中做配置,在扩展引用目录中也没有看到相应的扩展文件,在linux下则需要安装对应的mcrypt.so扩展. mcryp…
openssl 支持的加密算法 -aes-128-cbc -aes-128-cfb -aes-128-cfb1 -aes-128-cfb8 -aes-128-ecb -aes-128-ofb -aes-192-cbc -aes-192-cfb -aes-192-cfb1 -aes-192-cfb8 -aes-192-ecb -aes-192-ofb -aes-256-cbc -aes-256-cfb -aes-256-cfb1 -aes-256-cfb8 -aes-256-ecb -aes-25…
1.为什么会用到sodium加密扩展? 最近在做微信服务商相关的开发,主要用的的接口为微信小微商户进件接口.在请求相关接口中,需要对一些敏感字段进行加密,加密过程见https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=19_12 微信开发文档.其中获取平台证书的接口需要用到sodium_crypto_aead_aes256gcm_decrypt()函数,微信文档地址:https://pay.weixin.qq.com/wiki/do…
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法.下面介绍使用Openssl进行文件的对称加密操作. 一.Openssl支持的加密算法有:-aes-128-cbc -aes-128-cfb -aes-128-cfb1-aes-128-cfb8 -aes-128-ecb -aes-128-ofb-aes-192-cbc -aes-192-cfb -aes-192-cfb1-aes-192-…
OpenSSL&加密解密(思维导图) 1. 网络通信概述 传输层协议 进程间通信 监听端口 SSL 裸套接字 2. 加密和解密 2.1 加密的方式 对称加密 公钥加密 单向加密 认证加密 2.2 PKI的实现方式 SSL TLS 2.3 加密和解密的过程 2.3.1 加解密过程分析 2.3.2 术语解释 数字签名 身份认证 密钥交换 2.3.3 CA概述 证书中包含的内容 数字证书的创建过程 CA在通信过程中发挥的作用的机制 3. openssl详解 3.1 openssl概述 组成部分 子命令…
/** * des 加密算法 */ function do_mencrypt($input, $key) { if (!function_exists("mcrypt_module_open")) { throw_exception("请先安装mcrypt扩展"); exit(); } $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = pkcs5_pad($in…
一.Crack.CSPRNG.Hash.Mcrypt.Mhash.OpenSSL.密码散列算法的对比   Crack CSPRNG Hash Mcrypt Mhash OpenSSL 密码散列算法 简介 本扩展使用CrackLib库来测试密码的强度.密码的强度是通过检查密码的长度.大小写,对照指定的CrackLib字典来检查的(原文:The 'strength' of a password is tested by that checks length, use of upper and low…
1.centos7 安装PHP7.2版本 #查询是否安装过php yum list installed | grep php yum provides php #移除php yum remove php-common #下载源 rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum inst…
今天我们来学习的是 PHP 中的一个过时的扩展 Mcrypt .在 PHP7 之前,这个扩展是随 PHP 安装包一起内置发布的,但是现在新版本的 PHP 中已经没有了,需要使用这个扩展的话我们需要单独安装,并且在使用的时候也是会报出过时的警告的.所以,我们学习使用这些函数的时候,就需要使用 @ 来抑制错误信息.当然,之所以会对这套扩展发出过时警告,是因为 PHP 更加推荐使用 OpenSSL 来处理类似的加密能力. 模块和算法 Mcrypt 主要是使用的 Mcrypt 工具来进行加密操作的,所以…
OPenSSl的加密主要有三个重要的函数.看懂下面的代码就基本上知道该如何使用openssL来加密了. 不过注意,要先将libssl.so.1.0和libcrypto.so.1.0文件复制到执行的文件夹下,linux下,该命令一般为/usr/lib,否则,程序执行时会显示找不到文件.另外,注意先在目录下建立mikejin.txt.mikejmw.txt.mikejout.txt三个文件 #include <stdio.h> #include <string.h>#include &…
OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH, 但是,你不应该只将其作为一个库来使用,它还是一个多用途的.跨平台的密码工具.…
未加密传输的安全弊端 如果在网络传输中没有加密,就是以明文传输.传输的数据可以被抓包软件直接截获,并能读取里面的数据. 加密基本原理 1.对称加密 2.非对称加密 2.1.公钥私钥 公钥和私密要配对.公钥加密的数据用私钥来解密,私钥加密的数据用公钥来解密. 2.2.数字证书 当公钥被替换成别的公钥之后,替换前对应的私钥就不能解密了,只能用替换后对应的私钥解密.但是并不能判断公钥是否被替换.所以引入数据证书的概念.数字证书由权威机构发布,所以无法伪造.并且数字证书里面包含公钥和对应所有者信息,所以…
openssl rand 15 -base64 # 口令生成 openssl sha1 filename # 哈希算法校验文件 openssl md5 filename # MD5校验文件 openssl base64 filename.txt # base64编码/解码文件(发送邮件附件之类功能会可以使用) openssl base64 -d filename.bin # base64编码/解码二进制文件 openssl enc -aes-128-cbc filename.aes-128-cb…
openssl 算法基础 1.1 对称算法 : 密钥相同,加密解密使用同一密钥 1.2 摘要算法:无论用户输入的数据什么长度,输出的都是固定长度的密文:即信息摘要,可用于判断数据的完整性:目前常用的有 MD5(16字节), SHA1(20字节) 1.3 公钥算法:使用同一个公钥和算法加密(公开),使用各自的密钥解密; 主要有 RSA.DSA: 1.4 RSA算法:原理:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即是公钥(通常1024位):通…
加密基本原理 OpenSSL移植到arm开发板参考  http://blog.chinaunix.net/uid-27717694-id-3530600.html 1.公钥和私钥: 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高.用电子邮件的方式说明一下原理.      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到.      2. 必须保证是我发送的邮件,不是别人…
$config = array( "digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); $private_key_passwd = '123456'; //私钥密码 $expire = 365; //有效时长 $cer_path = "./test.cer…
1. 变量操作(常量) 设置变量 ZVAL_*系列函数; 例: zval t; ZVAL_STRING(t,"10",2); 获取变量 Z_* 系列函数 获取变量指针 Z_*_P 系列函数 获取变量指针的指针 Z_*_PP 系列函数 例: Z_STRVAL(t); Z_STRLEN(t); 变量类型转换 convert_to_* 系列函数 例: convert_to_long_ex(t); 获取变量类型 Z_TYPE Z_TYPE_P Z_TYPE_PP 可以同 IS_* 系列常量对比…
Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口 讲到了怎样调用内核中的接口的方法. 本节主要是介绍怎样Android C/C++应用程序调用Openssl的AES加密算法. crypt_ssl.c #include <stdio.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <aes.h> #include…
$key = '1234567890123456'; $iv = '1234567890123456'; $enc = openssl_encrypt("hello wolrd!", 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); $decrypted = openssl_decrypt($enc, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); echo bin2hex($enc)."\r\…
用于建立安全站点的工具,颁发证书,例如https,ftps等 默认配置文件: [root@bogon CA]# cat /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA #CA默认工作目录 certs = $dir/certs #CA签发证书的位置 crl_dir = $dir/crl #CA吊销证书的位置 database = $dir/index.txt #CA颁发证书的索引,相当于目录 new_certs_dir = $di…
此版本主要支持PHP7,在github(https://github.com/liexusong/php-beast)上选择php7分支然后编译安装即可.   来源于:https://github.com/liexusong/php-beast…
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption…
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方法来手动加密. 加密基础 学习如何使用加密之前,我们需要了解一些加密相关的基础知识. 加密算法一般分为两种:对称加密算法和非对称加密算法. 对…