非对称加密php
首先纠正一个问题,128不是说你的key要128个字符,128只是说加密后的密文是128位,也就是16个字节(1个字节是8位, 16 * 8 = 128);
加密对key没有强制要求,当你是null的时候,也是可以的,null只是我们人为约定不表示任何内容,内容为空,但是作为计算机存储,也是用二进制表示的;
Key用于和给定的密文进行计算,从而得到结果。加密中用的key就相当于钥匙,你加密后,如果需要解密,就必须提供钥匙。在非对称加密中,存在两个不同的key,非对称加密通常用于证书签名,我们通常说的公钥和私钥,其实就是这里的key,用公钥加密,就需要用私钥解密,用私钥加密,就需要用公钥解密;对称加密就只有一个key,加密解密都需要塔,就像你上面这里这个方法。在对称加密中,你需要保证key的安全,就像你不能把钥匙随便给人一样。
iv,我们通常成为初始化向量,但是用英语的话更容易明白,即:initial value,初始值,我们在加密的时候需要一个初始值,主要是为了加密结果更随机。
如果你想了解更多的话,可能就需要专门了解加密的相关内容了。
推荐你看下下面的内容:
http://www.ciphersbyritter.com/GLOSSARY.HTM
② ras可以加密php代码吗
php非对称罩正吵加密:采用公钥和私钥双钥形式对信息进行加密和解密,其中公钥和私钥是成对存在的,即使用公钥对信息加密后的密文只用使用其相应的私钥才可以进行解密,反之也毅然。相对对称加密而言叫做非对称加密。安全性非常好,但加密和解密耗时较长,比较适用于小数据量加密解密。常用例子:数字签名、RSA。清铅
公钥加密
//获取公秘钥
$pubKey = file_get_contents('public.key');
//返回资源型的
$pubKey = openssl_pkey_get_public(file_get_contents('public.key'));
openssl_public_encrypt('物侍123456',$crypted,$pubKey,OPENSSL_PKCS1_PADDING);
base64_encode($crypted);
③ PHP 加密:AES & RSA
最近两年一直从事与金融相关项目的开发与维护。但是,关于 PHP 加密解密的最佳实践,网上没有人给出一个完美的总结。恰逢最近看了《图解密码技术》一书,对 PHP 加解密有了更深刻的认识。
为了避免各位看枯燥的文字理论,开篇我就把总结给出:
一、对称加密
对称加密的特点是加解密速度快,加密后的密文强度目前还没有硬解的可能性。但是,在未来随着计算机性能的提升有可能会出现被破解的可能性。
对称加密的缺点也很明显。对称加密的加密过程与解密过程使用的是同一把密钥。一旦泄漏密钥,加密就失去了任何意义。
根据《图解密码技术》一书的推荐,对称加密目前推荐使用 AES。在 PHP 当中要实现 AES 加解密,是使用 openssl 扩展来实现。所以,请确保你的 PHP 已经开启了 openssl 扩展。
可以通过如下方式检测:
或者如下方式检测:
AES 的加密模式属于分组密码模式。所谓分组密码,是加密时把明文按照固定的长度分组,然后再进行加密。当然,细节之处很很多不同。AES 分组模式有多种:ECB、CBC、CFB、OFB、CTR 五种分组模式。目前优先推荐使用 CBC 模式。
如果使用 CBC 模式,那么在加密的时候,就需要一个前置的加密向量 IV。当初博主在使用 AES 来加密的时候,就很奇怪一个对称加密为何要这个向量。因为,在博主寒冰的潜意识里,对称加密只需要一个密钥就 Ok 了。没想到 AES 加密还有多种模式,而这个 CBC 模式恰恰就需要一个这样的向量值。关于这个向量大家可以在网上查阅相关的资料。这个东西非常重要,也非常好理解。
关于 PHP AES 加解密会用到的相关方法:
AES 支持三种强度:128、192、256。128 位的强度最低,但是,加密解密速度较快。256 位强度最高,但是,加密解密速度最低。所以,大家根据自己系统的重要程度选择使用对应强度。通常普通的金融项目使用 192 位完整够用了。顶级的就用 256 位。其他的就用 128 位吧。
二、非对称加密
非对称加密是指公钥加密私钥解密,私钥加密公钥解密的算法。非对称加密的算法有很多。《图解密码技术》一书推荐使用 RSA 算法。它使用起来也非常简单。
要使用 RSA 算法。首先,我们必须生成一对公钥私钥。其实生成公钥私钥很简单。
在 Linux 系统,直接使用如下命令生成:
此命令会生 ~/.ssh/ 目录下生成两个文件:
id_rsa 是私钥, is_rsa.pub 是公钥。
关于 PHP RSA 加解密会用到的相关方法:
以上就是关于在 PHP 项目开发中,我们使用的加密解密算法的一个总结。博主寒冰在总结过程中难免会有不足之处,还请大家指正!谢谢!
④ 非对称加密算法包括哪些
以下是几种常见的非对称加密算法:
1、RSA算法:RSA算法是最早被广泛使用的非对称加密算法之一,它利用质数分解的困难性,通过生成公钥和私钥来实现加密和解密。
4、ElGamal算法:ElGamal算法是一种基于离散对兆竖数问题的加密算法,它被广泛应用于数字签名和加密通信等领域。
这些算法都是非对称加密算法的代表性算法,它们在不同的场景下谈族有着各自的优缺点,应根据实际需求选择合适的族侍大算法来进行数据加密和解密。
⑤ phprsa解密对性能的影响
phprsa解密对性能的影野饥响是性能大幅度模升降低。RSA算法属于非对称加密算法,非对称加密颂码返算法需要两个秘钥:公开密钥(publickey)和私有秘钥(privatekey)。
⑥ 使用非对称加密及解密的过程详解
前面我们知道对称加密是对一份文件进行加密,且对应的只有一个密码?例如:A有一份文件,她使用对称加密算法加密后希望发给B,那么密码肯定也要一起交给B!这中间就会出现安全隐患,如果密码被第三方L嗅探到并截取,那么加密的文件就赤裸裸的出现在L的面前。
如果A有很多文件需要加密并发送给很多人!那么就会生成很多的密钥,这么多的密钥保管就成了一个很棘手的问题,况且还要把密钥发给不同的人!这无疑增添了很多的风险!
如何能改善这种安全性不高的加密算法,数学家们发现了另一种加密方式。称之为《非对称加密》asymmetric encryption。非对称加密算法需要两个密钥【公开密钥】(publickey)和【私有密钥】(privatekey)。下面简称【公匙】、【私匙】
【公钥】与【私钥】是一对,如果使用公开密匙对数据进行加密,那么只有对应的私有密匙才能解密;相反,如果使用私有密匙对数据进行加密,那么只有对应的公开密匙进行解密。因加密解密使用的是两种不同的密匙,所以这种算法称之为【非对称加密算法】。
在使用非对称加密前,A和B先各自生成一对公匙和私匙,然后把各自的公匙交给对方,并把自己的私匙妥善保管!如图所示:
在A给B发送信息之前,首先使用B发给A的公匙对信息进行加密处理,然后发送给B,B在收到密文之后,使用自己的私匙解密;B在给A回复信息时,先使用A发来的公匙对回复信息加密,然后发出,A收到密文后使用自己的私匙解密即可!如图所示:
⑦ php有什么加密出来比较短的加密方法
一般来说,加密分为两个部分,一个是非对称加密,一个是对称加密,使用对称加密加密正文信息,使用非对称加密加密对称加密的密钥,然后发送加密数据(消息摘要和数字签名就不讨论了),这是正规的数据加密策略,对称加密默认支持大数据分段加密策略,你只需要从接口中完成加密即可,而且对称加密速度比非对称加密快很多,如果你需要使用这个策略建议使用AES。如果你不愿意使用对称加密,只愿意使用AES加密,那你就必须丧失速度了,而且自己处理分段加密,因为RSA加密通常是117个字节就要分段(这个长度可能和密钥长度有关,我是用的接口是117),你需要自己把数据变成N个117字节的数据段来完成加密,解密也需要自己完成字节拼装。
⑧ 非对称加密基本特征
非对称加密算法的特点是算法强度复杂,其安全性依赖于算法与密钥。由于其算法复杂,而使得加密解密的速度远远低于对称加密算法,因此不适用于数据量较大的情况。由于非对称加密算法有两种密钥,其中一个是公开的,所以在密滑樱钥传输上不存在安全性问题,使得其在传输加密数据的安全性上又高于对称加密算法。
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
⑨ 简要说说对称加密和非对称加密的原理以及区别是什么
对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。
对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。
一、密钥不同
1、对称加密:对称加密加密和解密使用同一个密钥。
2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。
二、安全性不同
1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。
2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。
三、数字签名不同
1、对称加密:对称加密不可以用于数字签名和数字鉴别。
2、非对称加密:非对称加密可以用于数字签名和数字鉴别。
⑩ php账号密码什么加密方式比较好
一般使用非对称睁唯慎加密,32位 md5足够了。
当验证密山慧码对不对时,使用密码明文 md5加密后与密文对比,一致则说悉敬明密码是对的