几种常用的加密方式简单介绍
1 Base64加密方式(可逆)
Base64中的可打印字符包括字母A-Z/a-z/数组0-9/ 加号’+’斜杠’/’ 这样共有62个字符
Base64 ios7之后加入系统库
android 中 的几种模式 ,在需要与服务端或者交互式要沟通好需要处理的字符。
• CRLF 这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对作为一行的结尾而不是Unix风格的LF
• DEFAULT 这个参数是默认,使用默认的方法来加密
• NO_PADDING 这个参数是略去加密字符串最后的”=”
• NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了)
• URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/
因为各个系统间会有特殊字符处理不同的情况。有个简单的方式直接用 NO_WRAP 模式加密后,进行utf-8处理。如下:
public static String getBase64(String str) { String result = ""; if( str != null) {try { result = new String(Base64.encode(str.getBytes("utf-8"), Base64.NO_WRAP),"utf-8");} catch (UnsupportedEncodingException e) { e.printStackTrace(); } }return result; } // 解密 public static String getFromBase64(String str) { String result = ""; if (str != null) { try {result = new String(Base64.decode(str, Base64.NO_WRAP), "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();} } return result; }
2 MD5加密
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护
是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
根据输出值,不能得到原始的明文,即其过程不可逆
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。
MD5加盐
3 钥匙串加密方式
iCloud钥匙串,苹果给我们提供的密码保存的解决方案,iOS7之后有的
存沙盒:
1、如果手机越狱,密码容易被窃取。
2、当软件更新时,沙盒里的内容是不被删除的。但是,如果将软件卸载后重装,沙盒里的数据就没有了。
3、每个APP的沙盒是相对独立的,密码无法共用。
存钥匙串里:
1、苹果提供的安全方案,rsa加密,相对安全。
2、无论软件更新或删除,密码都存在,都可以自动登录。
3、同一公司的APP密码是可以共用的。
4 对称加密算法
优点:算法公开、计算量小、加密速度快、加密效率高、可逆
缺点:双方使用相同钥匙,安全性得不到保证
现状:对称加密的速度比公钥加密快很多,在很多场合都需要对称加密,
算法: 在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。不同算法的实现机制不同,可参考对应算法的详细资料
相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准
nECB :电子代码本,就是说每个块都是独立加密的
nCBC :密码块链,使用一个密钥和一个初始化向量 (IV)对数据执行加密转换
ECB和CBC区别:CBC更加复杂更加安全,里面加入了8位的向量(8个0的话结果等于ECB)。在明文里面改一个字母,ECB密文对应的那一行会改变,CBC密文从那一行往后都会改变。
5 RSA加密(非对称加密算法)(Secruty.framework系统库)
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)
非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密
特点:
非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快
对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了
但是RSA加密算法效率较差,对大型数据加密时间很长,一般用于小数据。
几种常用的加密方式简单介绍相关推荐
- 五种常见的加密方式及常用的加解密工具
如果你是互联网公司的信息安全从业者,那么你可能会经常需要处理撞库事件,撞库是黑客的无聊"恶作剧".黑客收集已经在互联网上泄露的用户和密码信息,生成对应的字典表,并尝试批量登录其他网 ...
- java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...
java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...
- 【Elasticsearch】十九种Elasticsearch字符串搜索方式终极介绍 各种 查询
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 可以加我问问题,免费解答,有问题可以先私聊我,本人每天都在线,会帮助需要的人. 但是本博主因为某些原因, ...
- 常用的加密方式有哪些?
常用的加密方式有哪些? 1.直接明文保存,比如用户设置的密码是"123456",直接将"123456"保存在数 据库中,这种是最简单的保存方式,也是最不安全的方 ...
- MATLAB的几种常用出图方式
MATLAB的几种常用出图方式 最近写文经常使用MATLAB绘图.出图,略作总结以备以后使用. 一.图片来源-MATLAB绘图或者读取文件 1.绘图 绘图不写了,根据需要选取函数作图吧,这里给个简单的 ...
- Android中常用的加密方式
Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...
- Java中常用的加密方式
一.Java常用加密方式 Base64加密算法(编码方式) MD5加密(消息摘要算法,验证信息完整性) 对称加密算法 非对称加密算法 数字签名算法 数字证书 二.分类 按加密算法是否需要key被分为两 ...
- 802.11协议wifi新加密方式WPA3介绍
当今的wifi安全问题 802.11任务组于2001年开始应用wpa2.当是还没有wifi并且802.11的应用也不像今天一样普遍.这是技术上的第一大步并且wifi以网卡几口的方式嵌入笔记本电脑上.此 ...
- 常用的色彩体系简单介绍
一般来说现在普遍认可的4大色彩体系是德国奥斯瓦尔德颜色体系.瑞典NCS色彩体系.美国Munsell颜色体系.日本PCCS颜色体系.但是自制世界标准的只有三家,分别是美国的曼彻尔(munsell)德国的 ...
最新文章
- error while loading shared libraries的解決方法
- osg节点访问和遍历
- jquery 性能优化与实践
- 控制反转_.NET Core ASP.NET Core Basic 12 控制反转与依赖注入
- VirtualBox 桥接模式
- python编程语言-Python有望超越Java排第二?风变编程解析编程语言新趋势
- 【高电复习3】频谱的线性搬移、振幅调制、解调、混频
- 图像处理库 FreeImage的简述
- 如何使用易媒助手对文章进行原创检测
- cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用简介,目录书摘...
- windows下jenkins批处理执行git pull失败的原因
- NVIDIA GPU显卡介绍
- php7微信公众号41005,微信公众号添加永久图片素材为什么老是报41005
- Notepad 追加字符
- 群论:群的定义与阿贝尔群
- LM7805的特殊使用方法
- 个人微信开发协议sdk接口API分享
- Docker 1.12.1初体验
- 苹果鼠标怎么充电_无线充电器怎么用?看一次就会了!-装修攻略
- 毕业设计 Stm32智能疫情防控门禁系统 - 单片机 嵌入式 物联网
热门文章
- java -cp 引用多个包_javac编译单文件、多文件引入jar包、-cp解决无法加载主类问题...
- 海思芯片对比选型_海思芯片的选型及特征参考说明大全
- mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
- android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果
- 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
- php两次访问时间,php – 检查当前时间是否介于两次之间,可能会有几天的时间
- drupal安装教程 linux,如何在Fedora Linux上安装Drupal 7
- php中的for循环最多循环多少次,php - 我在PHP中有2次时间,如何运行foreach循环来遍历所有这些日子? (最后24小时同时循环1小时!) - 堆栈内存溢出...
- 环信ease-sdk-3.3.4_r1 集成用户头像 昵称功能的简单处理方法
- r语言向量代码如何创建函数c,R中向量基本操作:创建、运算、访问