高级加密标准

使用php扩展mcrypt实现AES加密

假如想象 提交于 2020-02-22 15:21:22
AES(Advanced Encryption Standard,高级加密标准)是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。Rijndael是在AES中使用的基本密码算法。 对于此算法网上流传有很多php代码实现的版本,其实php的扩展mcrypt完全支持此加密算法,不必要自己去写代码实现。先不说自己写费时费力(当然你若是想研究此加密算法,那另说),使用php代码实现的算法效率也不会太高。 mcrypt扩展在php中默认是没有的,需要自己安装配置,其方法可以在网上搜索,这里不在详述。你可以使用以下代码检查你的php环境是否支持mcrypt [php] view plain copy $cipher_list = mcrypt_list_algorithms(); //mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes(); //mcrypt支持的加密模式列表 echo '<xmp>'; print_r( $cipher_list); print_r( $mode_list); 若你的环境支持mcrypt,输出结果应该如下: [plain] view plain copy Array ( [0] => cast-128 [1] => gost [2] => rijndael-128

SpringBoot | 第三十七章:集成Jasypt实现配置项加密

百般思念 提交于 2020-02-14 07:09:55
前言 近期在进行项目安全方面评审时,质量管理部门有提出需要对配置文件中的敏高文件进行加密处理,避免了信息泄露问题。想想前段时间某公司上传github时,把相应的生产数据库明文密码也一并上传了,导致了相应的数据泄露问题。也确实,大部分项目无论开发、测试还是生产环境,相关的敏高信息都是明文存储的,也是一大安全隐患呀。所以今天来说说,如何对配置文件进行加密操作。 一点知识 何为Jasypt SpringBoot集成Jasypt 常规集成示例 包含xml引入时 其他配置项 运维说明 密钥(盐值)存储说明 命令行示例 环境变量示例 bat脚本 参考资料 总结 最后 老生常谈 一点知识 何为Jasypt Jasypt 是一个Java库,允许开发人员以很简单的方式添加基本加密功能,而无需深入研究加密原理。利用它可以实现高安全性的,基于标准的加密技术,无论是单向和双向加密。加密密码,文本,数字,二进制文件。 高安全性的,基于标准的加密技术,无论是单向和双向加密。加密密码,文本,数字,二进制文件... 集成Hibernate的。 可集成到Spring应用程序中,与Spring Security集成。 集成的能力,用于加密的应用程序(即数据源)的配置。 特定功能的高性能加密的multi-processor/multi-core系统。 与任何JCE提供者使用开放的API 官网: http://www

iOS 密码学一

天大地大妈咪最大 提交于 2020-02-13 19:08:32
文章目录 MD5加盐和HMAC 加密部分 一个故事讲完https 对称加密的经典算法 2种加密的方式 终端操作加密的命令 MD5加盐和HMAC 123+一堆乱七八糟的东西,前后中间随便加,让别人无法直接破解123 盐的不足之处:1.这个盐是固定的,只要是开发者都得知道这个盐(iOS端,Android端,服务器端)如果泄漏出去就能破戒掉。 2.盐写死了,1.0写入已经对密码加密了,2.0版本如果要改,就不能改了。 HMAC:使用广泛,给定一个密钥,做明文和密钥的拼接,然后做2次MD5的计算。 加密部分 加密算法 —Hash 散列函数。是不可逆的 加密算法不应该都是不可逆的。 以下两种算法是可逆的 1.对称加密 传统的加密算法 加密和解密都使用一个密钥。密钥的保密工作非常重要。 2.非对称加密RSA(现代加密算法) 有公钥和私钥:1.用公钥加密,私钥解密。2.用私钥加密,公钥解密 明文>加密-密文 密文>解密-明文 一个故事讲完https A和B网络聊天,相隔很远,有一天他们突然发现,他们一直是在明文聊天,相当于在网上裸奔,如果任何一个不怀好意的人,都可以监听他们的聊天内容,打开他们传输的数据包,窥探他们的隐私。 A和B就商量做一个数据加密! 逻辑是:发送信息之前,加密;B收到的时候进行解密。 这时对称加密。问题就来了,他们需要先约定一个密钥,约定密钥的过程也会被监听。

对称加密、单向加密和公钥加密的概念和联系

帅比萌擦擦* 提交于 2020-02-04 17:41:16
下文主要从加密算法的特征、常用加密算法和加密工具等方面,梳理和比较对称加密、单向加密和公钥加密的概念及其之间的联系。 对称加密 采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常用的单向加密算法: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合; 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高; AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512位密钥的加密; Blowfish 算法特征: 1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦; 加密工具: openssl,它使用了libcrypto加密库、libssl库即TLS/SSL协议的实现库等。TLS/SSL是基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库。openssl官网。 gpg 单向散列加密 单向加密又称为不可逆加密算法,其密钥是由加密散列函数生成的。单向散列函数一般用于产生消息摘要,密钥加密等,常见的有: 1、MD5

常见的加密算法

天大地大妈咪最大 提交于 2020-01-28 23:48:36
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES 非对称加密 指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实

JAVA加密

十年热恋 提交于 2020-01-25 07:51:23
【源地址http://www.iteye.com/topic/1122076/】 加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为 双向加密 和 单向加密 ,而双向加密又分为 对称加密 和 非对称加密 (有些资料将加密直接分为对称加密和非对称加密)。 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。 算法是一组规则,规定如何进行加密和解密。因此对称式加密本身不是安全的。    常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等 对称加密一般java类中中定义成员 //KeyGenerator 提供对称密钥生成器的功能

几种常见的加密算法

China☆狼群 提交于 2020-01-18 03:23:32
一、概念 数据加密 的基本过程就是对原来为明文的文件或数据按某种 算法 进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的 密钥 之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该 编码 信息转化为其原来数据的过程。 简单来说,就是 把某一段数据(明文),按照“某种规则”转换成另外一段不可读的数据(密文)。这里选定的“规则”,就是加密算法。 理所当然,当别人拿到“密文”,解析出“明文”的难度取决于加密算法的破解难度。 二、几种常见的加密算法 1、 Base64算法 原码 /** * Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。 */ public class Base64Util { /* 我们知道Java中是用"8个二进制数字"表示一个实际的字节。 比如:我要用Base64编码一个字符串“abc”,实际算法如下: 'a','b','c'的ASCII标准编码分别为(十进制)97,98,99,因此用二进制表示“abc”字符串就是: 01100001,01100010,01100011 ---3组,每组8字节 Base64的原理:将这三组8字节,分成4组6字节 011000,010110, 001001,100011 ---4组,每组6字节 高位补0 00011000,00010110,

使用Python进行AES加密和解密

て烟熏妆下的殇ゞ 提交于 2020-01-13 02:39:56
高级加密标准 (英语: Advanced Encryption Standard ,缩写: AES ),在 密码学 中又称 Rijndael加密法 ,是 美国联邦政府 采用的一种区块加密标准。这个标准用来替代原先的 DES ,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由 美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。---百度百科 本科的时候弄过DES加密算法加密计算机文件,而DES加密算法现在基本处于被废弃的状态,所以现在想试试更高级一点的。 DES加密算法可发展为3DES加密算法,后来又被升级为AES加密算法,加长了密钥长度,也就增加了暴力破解的难度。 本次使用Python进行AES的加密解密,在ubuntu下进行: 如果没有安装Python,请先安装Python和pip: #sudo apt-get install python #sudo apt-get install python-pip 顺便安装两个库(有可能不叫库,一个是关于加密解密算法的,另外一个是关于字符转换的): #pip install Ctypto #pip install binascii AES拥有很多模式,而此次采用的CBC模式

PHP 开发API接口签名验证

老子叫甜甜 提交于 2020-01-13 02:37:10
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。 解释来源: http://baike.so.com/doc/6783134-6999702.html 参考: http://www.docin.com/p-572103142.html 上一篇 : PHP 开发API接口签名验证 中我们说到了sign签名,sign其实是防篡改的一种方法,它将约定好的排序、位置、数组进行密钥加密生成sign对比。 是的,sign签名我们是能看到数据的,只是可以防止数据的篡改。而AES可以加密解密数据 AES通过约定好的密钥进行加密,通过约定好的密钥解密。 ECB加密模式(不推荐): 容易被攻击 <?php /* * 加密 */ function encrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '

常见加密算法介绍

半城伤御伤魂 提交于 2020-01-03 05:04:41
简介 做为一个开发人员,了解一些加密算法是很有必要的,通过加密算法,我们能完成数据通信的三个目标,分别为数据的保密性、数据的完整性、源和目标用户的合法性,而常见的加密算法类型大体可以分为三类: 对称加密 , 非对称加密 , 单向加密 对称加密算法 加密算法与解密算法的秘钥key一致,即加密解密的密钥一致。在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,然后一旦这过程出现了密钥泄露,则数据内容就会被暴露出来 对称加密算法拥有着算法公开、计算量小、加密速度和效率高得特定,但是也有着密钥单一、密钥管理困难等缺点 常见的对称加密算法: DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。 3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。 AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。 非对称加密算法 非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密