资讯专栏INFORMATION COLUMN

数据加密技术与密钥安全管理

liaosilzu2007 / 2012人阅读

摘要:非对称加密非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥,简称公钥和私有密钥,简称私钥。请查看历史文章使用非对称加密算法密钥安全管理上面说到的这几种加密技术,能够达到安全保密效果的一种重要前提就是密钥的安全。

单向散列加密

单向散列加密就是把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种加密算法。

常见单向散列函数:

MD5 (Message Digest Algorithm 5)

SHA (Secure Hash Algorithm)

MAC (Message Authentication Code)

CRC (Cyclic Redundancy Check)

利用单项散列加密的这个特性,可以进行密码加密保存。

PHP 处理密码的几种方式

MD5(不推荐)

$password = md5($_POST["password"]);

原因:加密算法比较简单,而且很多破解密码的站点都存放了大量的经过MD5加密的密码字符串。

SHA256 和 SHA512(不推荐)

$password = hash("sha256", $password);

原因:加密算法比较简单。

盐值(额外字符串)(常用)


解释:在加密的过程中,新增了一个字符串。

Bcrypt (比较安全)

$strSalt = "2f9c8d7h6g7f8d9k";
$salt = "$2y$11$" . $strSalt;
echo crypt($password, $salt);

解释:salt 参数是可选的。然而,如果没有salt的话,crypt()创建出来的会是弱密码。

PHP函数:http://php.net/manual/zh/func...

password_hash (安全)

//支持版本 (PHP 5 >= 5.5.0, PHP 7)
echo password_hash($password, PASSWORD_DEFAULT);

解释:password_hash() 使用足够强度的单向散列算法创建密码的哈希(hash)。

PHP函数:http://php.net/manual/zh/func...

PHP端验证密码是否正确?

$password = "e4r3t2y1u";
$strPwdHash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $strPwdHash)) {
    //验证成功
} else {
    //验证失败
}

对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。

缺点:在数据传送前,发送方和接收方必须商定好秘钥,双方必须保存好秘钥。

常用算法:

DES

AES

PHP 相关类库,网上都能找到。

非对称加密

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

请查看历史文章:PHP 使用非对称加密算法 (RSA)

密钥安全管理

上面说到的这几种加密技术,能够达到安全保密效果的一种重要前提就是密钥的安全。

在实际工作中,我们有开发环境,预发布环境,正式环境,每个环境中的密钥都不相同。

那么,我们应该如何保存密钥呢?

写在源码中(不可取)。

写在配置文件中。(大部分这样干)。

写在环境变量中。(大部分这样干)。

保存在一个系统中,每次加密、解密都调取服务系统(系统开销大)。

自己写一个扩展,用PHP调取自己的扩展(维护成本高)。

暂时就想到这么多,望大神提供新的思路~


Thanks ~

AD:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30507.html

相关文章

  • 密钥技术简化云端数据加密

    摘要:解决方案部署在云端服务器和存储间,以确保服务器和存储间的每字节数据都被加密了,并且从存储移动到服务器的每字节数据都只能通过客户来解密。公司称,这具有军用级安全性,因为只有一方即客户持有主密钥来解密数据。 静态数据一直是通过被称为公钥基础设施(PKI)的技术来保护:当数据被创建时,就会使用公钥对数据进行加密,并且从理论上讲,只有持有私钥的授权人才能够解密数据。当将这种数据保护办法扩展到云环境...

    BDEEFE 评论0 收藏0
  • 没那么浅地谈谈HTTPHTTPS【二】

    摘要:王蒙没那么浅地谈谈与二四加密算法和密钥管理介绍密钥交换机制之前先普及一些加密算法基本知识以及为什么要有密钥管理机制。证书证书,顾名思义,就是颁发的证书。公钥基础设施公钥基础设施,简称是目前网络安全建设的基础与核心。**玫瑰与荆棘共生,香菇与毒菇同长,真实与假冒比翼腾飞。——王蒙**没那么浅地谈谈HTTP与HTTPS【二】四、加密算法和密钥管理介绍密钥交换机制之前先普及一些加密算法基本知识以及...

    Tecode 评论0 收藏0
  • HTTP的识别,认证安全——《HTTP权威指南》系列

    摘要:首发地址识别认证与安全第三部分的章提供了一系列的技术和机器,可用来跟踪身份,进行安全性检测,控制对内容的访问。安全使用基本认证的唯一方式就是将其与配合使用。加密之前的原始报文通常被称为明文或。 WilsonLius blog 首发地址 识别,认证与安全 第三部分的4章提供了一系列的技术和机器,可用来跟踪身份,进行安全性检测,控制对内容的访问。 客户端识别与cookie机制 第十一章 H...

    asce1885 评论0 收藏0

发表评论

0条评论

liaosilzu2007

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<