我们已经学过不少 PHP 中加密扩展相关的内容了.而今天开始,我们要学习的则是重点中的重点,那就是 OpenSSL 加密扩展的使用.为什么说它是重点中的重点呢?一是 OpenSSL 是目前 PHP 甚至是整个开发圈中的数据加密事实标准,包括 HTTPS/SSL 在内的加密都是它的实际应用,二是 OpenSSL 提供了对称和非对称加密的形式,也就是我们日常中最普遍的两种加密方式,这都是我们需要掌握的内容. 那么,它和 Hash 类的加密有什么不同吗?Hash 类的加密是单向的不可逆转的加密,加密后…
function test1(){ $config = array( "digest_alg" => "sha1", "private_key_bits" => 1024, "private_key_type" => OPENSSL_KEYTYPE_RSA, "encrypt_key" => false ); $res = openssl_pkey_new($config); ope…
上篇文章,我们了解了关于对称和非对称加密的一些相关的理论知识,也学习了使用 OpenSSL 来进行对称加密的操作.今天,我们就更进一步,学习 OpenSSL 中的非对称加密是如何实现的. 生成私钥 通过之前的学习,我们知道非对称加密是分别需要一个公钥和一个私钥的.我们就先来生成一个私钥,也就是存放在我们这一端一个密钥.请记住,在任何时候,私钥都是不能给别人的哦! $config = array( "private_key_bits" => 4096, // 指定应该使用多少位来生…
php服务端与客户端交互.提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密 先了解一下关于公钥私钥加解密的作用 一.公钥加密 假设一下,我找了两个数字,一个是1,一个是2.我把2保留起来,不告诉你们,当做我的私钥,然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,…
转载. https://blog.csdn.net/SSY_1992/article/details/79094556 任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障. 本节只讲原理和应用,具体的代码请到这里下载,都是封装好的工具类,包括终端命令操作.下面介绍常用三种加密. 一.哈希HASH 1.MD5加密 MD5加密的特点: 不可逆运算 对不同的数…
对称加密:双方采用同样的秘钥进行加密和解密.特点是速度快,但是安全性没有非对称加密高 非对称加密:接收方生成的公有秘钥公布给发送方,发送方使用该公有秘钥加密之后,发送给接收方,然后接收方使用私有秘钥解密 如果接收方需要返回消息给发送方,同样也可以接受发送方生成的公有秘钥,使用它加密后发送给发送方. (对称加密和非对称加密都是可逆加密,像SHA,MD4,MD5都是不可逆加密,通常用来检验数据在传输的过程中是否被修改) AES,RSA加密及解密代码如下: import java.security.K…
关于对称和非对称的加密操作,我们已经学习完两篇文章的内容了,接下来,我们就继续学习关于证书的生成. 生成 CSR 证书签名请求 CSR 是用于生成证书的签名请求,在 CSR 中,我们需要一些 dn 信息.其实也就是当前这个证书的服务对象,包含公司名.邮箱之类的内容. $privkey = openssl_pkey_new([ "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE…
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 7.1 之后的对称加密和非对称加密都需要借助 openssl 扩展实现. mcrypt 库已经被移除. 对称加密函数 openssl_get_cipher_methods() : 返回 openssl 支持的所有加密方式.…
写在最前:此文的目的是介绍编码,减少刚接触时的弯路,所以内容且不做详细累述 一.使用 node-rsa 进行非对称加解密 因为 比特币 中使用的非对称加密,所以在npm中对比找到一个比较方便也直观的库:node-rsa. 非对称加密的关键在于 有 公钥 / 私钥 用法: a.生成一对公钥私钥 b.公钥加密 -> 对应私钥解密 c.私钥加密 -> 对应公钥解密 非对称加密的常见应用方式 a.公钥加密,发给私钥拥有者,私钥解密获得明文.其它人用公钥解不开 b.私钥加密(签名) 公钥的传输(混合加密…
新年新气象,也希望新年可以挣大钱.不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬.(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...).已经上班两天了,公司大部分人还在休假,而我早已上班,估计今年我就是加班狗的命.(不说了,要坚强...) 以上扯淡已毕,下面言归正传. 这次的.NET加密解析系列中,前面已经讲解了散列加密.对称加密.数字签名三种加密方式,在这篇博文种,将会主要讲解非对称加密的原理,以及非对称加密在.NET种的应用. 一.非对称加密概述: 前面讲解过对称加密,对称加密中…
[转]DotNet加密方式解析--非对称加密 新年新气象,也希望新年可以挣大钱.不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬.(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...).已经上班两天了,公司大部分人还在休假,而我早已上班,估计今年我就是加班狗的命.(不说了,要坚强...) 以上扯淡已毕,下面言归正传. 这次的.NET加密解析系列中,前面已经讲解了散列加密.对称加密.数字签名三种加密方式,在这篇博文种,将会主要讲解非对称加密的原理,以及非对称加密在.NET种的应用. 一.非…
      非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密:如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密.因为加密和解密使用的是两个不同的密钥.       非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解.而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,…
前言   在参考互联网大厂的登录.订单.提现这类对安全性操作要求较高的场景操作时发现,传输的都是密文.而为了目前项目安全,我自己负责的项目也需要这方面的技术.由于,我当前的项目是使用了前后端分离技术,即node.js做前端,spring boot做后端.于是,我开始搜索有关node.js与java实现非对称加密的资料,然而,我却没有得到一个满意的答案.因此,我有了写本篇博客的想法,并希望给用到这类技术的朋友提供帮助. 一.明文密码传输对比 首先. 构建spring boot 2.0项目 引入we…
RSA 非对称加密,私钥转码为pkcs8 错误总结 最近在和某上市公司对接金融方面的业务时,关于RSA对接过程中遇到了一个坑,特来分享下解决方案. 该上市公司简称为A公司,我们简称为B公司.A-B两家公司通信采用HTTPS协议,加密方式选择RSA非对称加密+签名的方式,以保障数据通信安全,不被篡改. 虽然对于数据通信来说,安全是有了保障.但对于开发来说,却添了不少的麻烦.麻烦就在于加解密十分繁琐. A 公司提供了自己的公钥,以及我们公司(B)的私钥.我们需要将私钥转换成pkcs8 的格式.然后从…
加密技术可以分为对称与非对称两种. 对称加密,解密,即加密与解密用的是同一把秘钥,常用的对称加密技术有DES,AES等 而非对称技术,加密与解密用的是不同的秘钥,常用的非对称加密技术有RSA等 为什么要有非对称加密,解密技术呢 假设这样一种场景A要发送一段消息给B,但是又不想以明文发送,所以就需要对消息进行加密.如果采用对称加密技术,那么加密与解密用的是同一把秘钥.除非B事先就知道A的秘钥,并且保存好.这样才可以解密A发来的消息. 由于对称技术只有一把秘钥,所以秘钥的管理是一个很麻烦的问题.而非…
大话https演化过程(包括概念:对称加密.非对称加密.公钥.私钥.数字签名.数字证书.https访问全过程)   在网络上发送数据是非常不安全的,非常容易被劫持或是被篡改,所以每次定向发送数据你都可以视为在广播,每次定向接收数据都可以视为在广收.而建立安全通道的难度和成本都很高,甚至安全性都不一定靠谱.   在这样的情境下,F需要向S发送一段只有S才能看的信息msg,它要如何做呢?   很容易想到一个最直接的方法:给这段信息加密,只有F和S有密钥(加密与解密采用相同的算法和密钥),这样F广播的…
(一)对称加密(Symmetric Cryptography) ---共享密钥加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法.对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中.对称加密通常使用的是相对较小的密钥,一般小于256 bit.因为密钥越大,加密越强,但加密与解密的过程越慢.如果你只用1 bit来做这个密钥,那黑客们可以先试着用…
1.引言 随着互联网安全意识的普遍提高,对安全要求稍高的应用中,HTTPS的使用是很常见的,甚至在1年前,苹果公司就将使用HTTPS作为APP上架苹果应用市场的先决条件之一(详见<苹果即将强制实施 ATS,你的APP准备好切换到HTTPS了吗?>一文). 所以,无论是即时通讯IM还是其它应用,在网络安全意识增强的今天,很多场景下使用HTTPS是肯定没错的.对于即时通讯IM的开发人员来说,长连接用TLS这没疑问,短连接用HTTPS也没问题,但我想问你一个最基础的面视问题:HTTPS到底用的是对称…
对称加密和非对称加密 对称加密 概念:加密秘钥和解密秘钥使用相同的秘钥(即加密和解密都必须使用同一个秘钥) 特点:一对一的双向保密通信(每一方既可用该秘钥加密,也可用该秘钥解密,非对称加密是多对一的单向保密通信) 常用算法: DES:秘钥长度为64位 3DES:即三重DES,DES的加强版,是DES向AES过渡的加密算法 AES:目前基本已经取代DES,是使用最广泛的加密算法 优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开.计算量小.加密速度快.加密效率高. 缺点:秘钥…
C#.NET中对称和非对称加密.解密方法汇总--亲测可用   在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有非可逆加密;有对称加密,也有非对称加密.加密.解密一般会用在软件的注册码,系统密码,通讯中.今天我就来分享,汇总一下C#.NET加密.解密的实现方法. 一.不可逆加密 不可逆加密一般不会涉及到解密.也就是是加密之后的密文不能还原成原来的明文.这种算法一般用于生成自信摘要,确保数据的完整性及防篡改.使…
SSH登录方式 接触过Linux服务器的同学肯定用过SSH协议登录系统,通常SSH协议都有两种登录方式:密码口令登录和公钥登陆. 一.密码口令(类似于账号密码登录) 1.客户端连接服务器,服务器把公钥发给客户端 2.客户端输入登录口令,并用服务器公钥加密后提交给服务器 3.服务器用私钥解密,结果匹配,则允许登录 二.公钥登录(一般用RSA非对称加密) 1.客户端生成密钥对 2.将客户端的公钥写入服务器的密钥验证文件 3.客户端请求登录,服务器生成一段随机字符串,并使用客户端公钥加密后发送给客户端…
quote: http://www.cnblogs.com/happinessCodes/archive/2010/07/27/1786404.html   一说到数据的加密,常常会涉及到这几个单词:算法.原文.密文和密钥.通常,发送者把原文通过一个加密的算法,用密钥进行加密后将密文发送给接收者,然后接收者再用密钥对密文进行解密,得到原文.由于常用的加密算法都是公开的,所以,对原文的加密的关键,就是密钥了.对于这种加解密都使用同样的密钥的算法,我们称之为对称加密,对称加密的代表算法就是DES家族…
任务需求:要求登陆时将密码加密之后再进行传输到后端. 经过半天查询摸索折腾,于是有了如下成果: 加密方式:RSA非对称加密.实现方式:公钥加密,私钥解密.研究进度:javascript与java端皆已实现.个人方案:定时器,每天凌晨四五点跑,更换公钥私钥.前端页面进入登录页,则请求后端获取公钥,当用户输入完登录表单点击提交时,将公钥与密码进行加密后传输.如果后端解密失败,则返回指定状态码给前端,前端拿到此状态码,则再次请求后端,重新获取公钥. 因为里面蕴含了三个演示  生成公私钥.前端加密.后端…
使用公钥和私钥的加密和解密: 非对称加密的关键在于 有 公钥 / 私钥用法:a.生成一对公钥私钥b.公钥加密 -> 对应私钥解密c.私钥加密 -> 对应公钥解密 非对称加密的常见应用方式a.公钥加密,发给私钥拥有者,私钥解密获得明文.其它人用公钥解不开b.私钥加密(签名) 公钥的传输(混合加密)a.使用对称加密算法发布公钥b.使用对称加密算法解密公钥,再使用公钥加密明文,发给私钥拥有者 注:不能 公钥加密公钥解密 或 私钥加密私钥解密 var NodeRSA = require("n…
韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha android 常见的加密 ======== 不可逆加密:md5,sha1 可逆的加密中,按照密钥的数量和加密规则分为对称加密和非对称加密两类 对称加密 就是 解密加密 用一个 密钥 非对称加密,加密解密 用不同的密钥. 常见的对称加密, aes加密. des加密. 非对称加密, RSA, ===== 对称加密: 密钥可以自己指定,只有一把密钥,如果密钥泄漏数据就会暴漏: 常用的对称加…
目前主流的加密方式有:(对称加密)AES.DES        (非对称加密)RSA.DSA 对称加密例子:des对称加密 des对称加密,对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码),是一种对称加密方式. package me.andpay.ac.common.srv.idtag.bypay.util; import javax.crypto.Cipher; import ja…
# 原创,转载请留言联系 为什么会出现这么多加密啊,公钥私钥啊,签名啊这些东西呢?说到底还是保证双方通信的安全性与完整性.例如小明发一封表白邮件给小红,他总不希望给别人看见吧.而各种各样的技术就是为了保障通信的安全.(本文务必从上到下看) 1.对称加密与非对称加密 对称加密: 对称加密是最快速的一种加密方式.加密和解密用的是同样的密钥. 对称加密是怎么实现的呢?举个例子说明. 小明写了一封信给小红.他用箱子装着信,同时箱子上锁,他去快递店把这个箱子和开启箱子的钥匙一起快递给小红.小红收到箱子后,…
非对称加密:即两端使用一对不同的密钥进行加密. 在非对称加密中,需要两对密钥,公钥和私钥. 公钥个私钥属于对立关系,一把加密后,只有另一把才可以进行解密. 公钥数据加密 数字证书内包含了公钥,在进行会话连接时,双方交换各自的公钥,保留自己的私钥.进行数据传输时,利用对方的公钥进行数据加密.加密后的数据只有对方的私钥才能进行解密. 私钥数字签名 私钥进行数据加密,所有人用公钥都能解密数据,但是加密后的数据却唯有私钥能生成.可以用于消息来源验证.将数据用私钥加密并明文告诉用户密文内容,用户进行公钥解…