数据加密技术

IOS关于数据加密(主要为登录加密)想总结的

安稳与你 提交于 2020-03-28 02:33:17
首先上来就来说一下,IOS常见的几种加密算法 *哈希(散列)函数 : MD5、SHA *对称加密算法:DES、3DES、AES *非对称加密算法:RSA 一、哈希(散列)函数 1、MD5 MD5加密的特点: 1、不可逆运算、 2、对不同的数据加密的结果是定长的32位字符(不管文件多大都一样) 3、对相同的数据加密,得到的结果是一样的(也就是复制)。 4、抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别. 5、弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的. 6、强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的。 所有的数据(视频、音频、文件、只要存在于硬盘或内存中的)都是可以被MD5加密的,得到的都是32个字符。 但是这是不安全的,相对来说比较容易破解: 传统方法是加盐(Salt):在明文的固定位置插入位数足够多、足够复杂的随机串,然后再进行MD5。 2、加“盐” 可以加个“盐”试试,“盐”就是一串比较复杂的字符串。加盐的目的是加强加密的复杂度,这么破解起来就更加麻烦,当然这个“盐”越长越复杂,加密后破解起来就越麻烦,不信加盐后然后MD5加密,再去到md5破解网站破解试试看,他就没辙了!!! 哈哈,这下应该安全了吧!答案是否定的。如果这个“盐

Nodejs实战系列:数据加密与crypto模块

好久不见. 提交于 2020-02-08 14:11:56
博客地址: 《NodeJS模块研究 - crypto》 Github : https://github.com/dongyuanxin/blog nodejs 中的 crypto 模块提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。为了使行文流畅,列出了本文记录的几类常用算法: 内容摘要:散列(Hash)算法 内容摘要:HMac 算法 内容加解密:对称加密(AES)与非对称加密解密(RSA) 内容签名:签名和验证算法 散列(Hash)算法 散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。基本原理是将任意长度数据输入,最后输出固定长度的结果。 hash 算法具有以下特点: 不能从 hash 值倒推原数据 不同的输入,会有不同的输出 好的 hash 算法冲突概率更低 正因为 hash 算法的这些特点,因此 hash 算法主要用于:加密、数据检验、版本标识、负载均衡、分布式(一致性 hash)。 下面实现了一个获取文件标识的函数: const crypto = require("crypto"); const fs = require("fs"); function getFileHash(file, algorithm