des算法

IPsec入门篇讲解(第一篇)

旧巷老猫 提交于 2020-03-16 00:38:21
IPsec概述  在Internet的传输中,绝大部分数据的内容都是明文传输的,这样就会存在很多潜在的危险,比如:密码、银行帐户的信息被窃取、篡改,用户的身份被冒充,遭受网络恶意***等。网络中部署IPSec后,可对传输的数据进行保护处理,降低信息泄露的风险  IPsec (Internet Protocol Security)是一个工业标准网络安全协议(公有协议),它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,为IP网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,可以有效抵御网络***,同时保持易用性  IPsec是一个公有协议 华为 思科 华三都支持支持该协议  IPsec是一个协议框架 不是单独的一个协议  IPsec可以使两个公司之间在internet网络传输数据时 保护数据安全性  IPSec通过验证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议实现IP报文的安全保护  AH是报文头验证协议,主要提供数据源验证、数据完整性验证和防报文重放功能,不提供加密功能  ESP是封装安全载荷协议,主要提供加密、数据源验证、数据完整性验证和防报文重放功能  AH和ESP都能够提供数据源验证和数据完整性验证

密码学总结(一)

二次信任 提交于 2020-03-07 23:56:59
一、密码常识 1.1 信息安全面临的问题以及解决方案 记住: 不要过于依赖密码保证信息安全,因为任何密码都会有被破解的一天; 不要使用低强度的密码; 不要使用保密的密码算法; 信息安全是一个系统的问题,密码只是信息安全的一部分; 1.2 加密三要素 明文和密文:加密处理的数据。 秘钥(key):用于生成明文的一串数字。 算法(algorithm):用于解决复杂问题的步骤。从明文生成密文的步骤,也就是加密的步骤,称为“加密算法",而解密的步骤则称为“解密算法"。 1.3 凯撒密码 恺撒密码(Caesar cipher)是一种相传尤利乌斯·恺撒曾使用过的密码。恺撒于公元前100年左右诞生于古罗马,是一位著名的军事统帅。 恺撤密码是通过将明文中所使用的字母表按照一定的字数“平移”来进行加密的。 为了讲解方便,我们用小写字母(a,b,c,…)来表示明文,用大写字母(A,B,C,…)来表示密文。 现在我们将字母表平移3个字母,于是,明文中的a在加密后就变成了与其相隔3个字母的D,以此类推。b变成E,c变成F,d变成G…v变成Y,w变成Z,而x则会回到字母表的开头而变成A,相应地,y变成B,z变成C。通过下图我们可以很容易地理解“平移"的具体工作方式。 比如英文 hello ,加密后的数据变为 KHOOR 。 恺撒密码的解密过程是使用与加密时相同的密钥进行反向的平移操作。比如上面例子

黑马程序员数据加密学习

孤街浪徒 提交于 2020-03-04 12:14:32
---------------------- Windows Phone 7手机开发 、 .Net培训 、期待与您交流! ---------------------- 对称加密算法: 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。 对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。 非对称加密算法: 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称密码体制的特点: 算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快

PHP加密函数

允我心安 提交于 2020-03-03 00:47:02
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 复制代码 代码如下: $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: 复制代码 代码如下:

加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较

末鹿安然 提交于 2020-02-29 17:15:20
转载自:http://www.cnblogs.com/sochishun/p/7028056.html 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法: 对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。 非对称算法: 非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",它们两个必需配对使用,否则不能打开加密文件。发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。 散列算法: 散列算法,又称哈希函数,是一种单向加密算法。在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的"散列"或"消息摘要"(Message digest)。散列算法不算加密算法,因为其结果是不可逆的,既然是不可逆的,那么当然不是用来加密的,而是签名。 对称性加密算法有

PHP使用DES进行加密和解密

给你一囗甜甜゛ 提交于 2020-02-27 07:12:14
DES是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科: wiki百科 百度百科 php中有一个扩展可以支持DES的加密算法,是:extension=php_mcrypt.dll 在配置文件中将这个扩展打开还不能够在windows环境下使用 需要将PHP文件夹下的 libmcrypt.dll 拷贝到系统的 system32 目录下,这是通过phpinfo可以查看到mcrypt表示这个模块可以正常试用了。 下面是PHP中使用DES加密解密的一个例子: // $input - stuff to decrypt //$key - the secret key to use function do_mencrypt( $input , $key ) { $input = str_replace ( "" n " , "" , $input ); $input = str_replace( "" t " , "" , $input ); $input = str_replace ( "" r " , "" , $input ); $key = substr(md5( $key ), 0, 24); $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $iv = mcrypt_create_iv(mcrypt

PHP的学习--PHP加密

和自甴很熟 提交于 2020-02-24 04:15:32
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: $password = crypt(

Python实现加密方法集合

爱⌒轻易说出口 提交于 2020-02-17 14:22:28
一、常用的js加密算法 1、js加密解密算法 对称加密(加密解密密钥相同):DES、DES3、AES 非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5、HMAC、SHA 2、算法说明 ①新浪微博登陆: RSA(非对称加密方式) 登录前先get请求返回携带有token、pubkey、raskv、servertime等信息的dict字符串,包含在js中需要提取转换 需要破解的参数是su和sp,sp是密码<br> su:是通过封装了RSA源码的一个对象sinaSSOEncoder的base64编码用户名得到的<br> sp:加密的密码,通过创建sinaSSOEncoder加密对象,公钥是上面返回的pubkey,偏移量"10001" 加密内容是servertime + "\t" + nonce + "\n" + pw servertime:上面get请求返回的 nonce:上面get请求返回的 pw:输入的密码 ②腾讯企鹅媒体:MD5双重加密(信息摘要算法或签名算法) 登录前后台会get请求一次,返回含有token和salf等加密参数信息以及一个cookie,该cookie要加在post的请求中 加密形式:MD5(token + MD5(salt + pwd))双重加密 ③网易云获取评论请求参数加密:加密方式AES+RSA 评论请求加密参数是两个:params

Des加解密算法

こ雲淡風輕ζ 提交于 2020-01-17 06:10:29
class DesHelper { /// <summary> /// DES加密方法 /// </summary> /// <param name="prestr">待加密的字符串</param> /// <param name="key">加密的密码(只能为8位长)</param> /// <param name="encoding">编码方式(默认为UTF-8)</param> /// <returns>加密结果</returns> public static string Encrypt(string prestr, string key, Encoding encoding = null) { encoding = encoding ?? Encoding.GetEncoding("UTF-8"); //注意iv的长度,必须和key中的密码长度相同 var iv = Encoding.ASCII.GetBytes(key); var keyArray = Encoding.ASCII.GetBytes(key); var datas = encoding.GetBytes(prestr); var desCryptoServiceProvider = new DESCryptoServiceProvider(); using (var memoryStream = new

Des加解密算法

寵の児 提交于 2020-01-04 03:33:23
class DesHelper { /// <summary> /// DES加密方法 /// </summary> /// <param name="prestr">待加密的字符串</param> /// <param name="key">加密的密码(只能为8位长)</param> /// <param name="encoding">编码方式(默认为UTF-8)</param> /// <returns>加密结果</returns> public static string Encrypt(string prestr, string key, Encoding encoding = null) { encoding = encoding ?? Encoding.GetEncoding("UTF-8"); //注意iv的长度,必须和key中的密码长度相同 var iv = Encoding.ASCII.GetBytes(key); var keyArray = Encoding.ASCII.GetBytes(key); var datas = encoding.GetBytes(prestr); var desCryptoServiceProvider = new DESCryptoServiceProvider(); using (var memoryStream = new