md5加密算法

对称加密算法及对称加密算法

情到浓时终转凉″ 提交于 2019-11-28 05:55:23
对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点: 速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。 缺点: 在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。 在对称加密算法中常用的算法有:DES、AES等。 AES:密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节 DES:密钥的长度64位,8个字节。 非对称加密:一对密钥由公钥和私钥组成(可以使用很多对密钥)。私钥解密公钥加密数据,公钥解密私钥加密数据(私钥公钥可以互相加密解密)。 私钥只能由一方保管,不能外泄。公钥可以交给任何请求方。 在非对称加密算法中常用的算法有: RSA、Elgamal、背包算法、Rabin、Diffie-Hellman、ECC(椭圆曲线加密算法)。 使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。 缺点: 速度较慢 优点: 安全 1.分类 加密算法首先分为两种:单向加密、双向加密。 单向加密是不可逆的,也就是只能加密,不能解密

iOS中DES与MD5加密方案

独自空忆成欢 提交于 2019-11-27 15:01:43
MD5算法和DES算法是常见的两种加密算法。 MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那么它有什么用的,它的用处大了,大多数的登录功能都会使用到这种算法。后面根据我的项目经验来介绍。 DES:一种 使 用密钥加密 的块算法,所以,使用它加密时,需要一个密钥,加上一些设置和你需要加密的文段。 在IOS中,使用这两种加密算法非常简单,系统的 <CommonCrypto/CommonCrypto.h> 库给我们提供的边界的接口。在很多移动项目中,安卓平台和IOS平台的后台服务是统一的,比如一个登录功能是这样的流程: 1、客户端向服务端请求密钥,请求的参数是双方约定好的一个MD5加密的字符串。我们可以通过下面的进行第一步加密: - (NSString *)MD5Digest { //要进行UTF8的转码 const char* input = [self UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(input, (CC_LONG)strlen(input), result); NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for

ASP.NET加密算法(MD5/DES)

筅森魡賤 提交于 2019-11-27 07:00:47
本文讲 ASP.NET的MD5和DES加密和解密算法 #region MD5算法 public string md5(string str, int code) { if (code == 16) //16位MD5加密(取32位加密的9~25字符) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16); } if (code == 32) //32位加密 { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower(); } return "00000000000000000000000000000000"; } #endregion #region DESEncrypt DES加密 // <summary> /// 进行DES加密。 /// </summary> /// <param name="pToEncrypt">要加密的字符串。</param> /// <param name="sKey">密钥,且必须为8位。</param> ///