数据安全,MD5、SHA1加密字符串
2016-06-03 13:45
246 查看
本地数据存储的原则:
与安全相关的用户信息(明文->密文)
RSA 公钥(公开的),私钥(各自不同),加密算法是公开的(穷举)
原则:
任何应用程序都不能在本地直接存储与安全相关的用户信息;
任何应用程序在于服务器传递数据时,都不能直接传输与安全相关的用户信息。
数据加密——MD5
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321
MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如,可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修改了文件中的任何内容,对该文件重新计算的MD5值会发生变化。
MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。
http://www.cmd5.com
使用MD5加密字符串:
SHA-1简介
SHA (Secure Hash Algorithm,译作安全散列算法) 由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。
SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512都被需要安全散列算法的美国联邦政府所应用,他们也使用其他的密码算法和协定来保护敏感的未保密资料。
SHA-1散列函数用可能会被用来实现个人电脑上的数字版权的管理。
使用SHA1加密字符串:
与安全相关的用户信息(明文->密文)
RSA 公钥(公开的),私钥(各自不同),加密算法是公开的(穷举)
原则:
任何应用程序都不能在本地直接存储与安全相关的用户信息;
任何应用程序在于服务器传递数据时,都不能直接传输与安全相关的用户信息。
数据加密——MD5
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321
MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如,可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修改了文件中的任何内容,对该文件重新计算的MD5值会发生变化。
MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。
http://www.cmd5.com
使用MD5加密字符串:
#import <CommonCrypto/CommonDigest.h> - (NSString *)MD5 { const char *cStr = [self UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5(cStr, strlen(cStr), digest); NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result; }
SHA-1简介
SHA (Secure Hash Algorithm,译作安全散列算法) 由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。
SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512都被需要安全散列算法的美国联邦政府所应用,他们也使用其他的密码算法和协定来保护敏感的未保密资料。
SHA-1散列函数用可能会被用来实现个人电脑上的数字版权的管理。
使用SHA1加密字符串:
- (NSString *)SHA1 { const char *cStr = [self UTF8String]; NSData *data = [NSData dataWithBytes:cStr length:self.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString *result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result; }
相关文章推荐
- 一些关于数据存储和查询优化的想法
- 正确面对服务器数据存储防止数据丢失
- 高性能Javascript笔记 数据的存储与访问性能优化
- 在android开发中进行数据存储与访问的多种方式介绍
- Android数据存储之SQLite使用
- Android 数据存储方式有哪几种
- Android平台中实现数据存储的5种方式
- 四种Android数据存储方式
- Python使用shelve模块实现简单数据存储的方法
- android中使用SharedPreferences进行数据存储的操作方法
- 《DATA+++》保护个人隐私的安全套装
- Android基础——数据存储
- 使用偏好设置存储数据
- 谈“基于风险优先的数据安全”如何落地
- 移动设备数据安全形势日趋严峻
- “记事本”的杀毒功能
- Android实现数据存储5种技术
- 问答:归档产品如何保障数据安全(上)
- iOS爆出新漏洞威胁用户数据安全
- 如何捍卫企业数据安全杜绝信息泄密