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加密算法效率较差,对大型数据加密时间很长,一般用于小数据。

几种常用的加密方式简单介绍相关推荐

  1. 五种常见的加密方式及常用的加解密工具

    如果你是互联网公司的信息安全从业者,那么你可能会经常需要处理撞库事件,撞库是黑客的无聊"恶作剧".黑客收集已经在互联网上泄露的用户和密码信息,生成对应的字典表,并尝试批量登录其他网 ...

  2. java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...

  3. 【Elasticsearch】十九种Elasticsearch字符串搜索方式终极介绍 各种 查询

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 可以加我问问题,免费解答,有问题可以先私聊我,本人每天都在线,会帮助需要的人. 但是本博主因为某些原因, ...

  4. 常用的加密方式有哪些?

    常用的加密方式有哪些? 1.直接明文保存,比如用户设置的密码是"123456",直接将"123456"保存在数 据库中,这种是最简单的保存方式,也是最不安全的方 ...

  5. MATLAB的几种常用出图方式

    MATLAB的几种常用出图方式 最近写文经常使用MATLAB绘图.出图,略作总结以备以后使用. 一.图片来源-MATLAB绘图或者读取文件 1.绘图 绘图不写了,根据需要选取函数作图吧,这里给个简单的 ...

  6. Android中常用的加密方式

    Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...

  7. Java中常用的加密方式

    一.Java常用加密方式 Base64加密算法(编码方式) MD5加密(消息摘要算法,验证信息完整性) 对称加密算法 非对称加密算法 数字签名算法 数字证书 二.分类 按加密算法是否需要key被分为两 ...

  8. 802.11协议wifi新加密方式WPA3介绍

    当今的wifi安全问题 802.11任务组于2001年开始应用wpa2.当是还没有wifi并且802.11的应用也不像今天一样普遍.这是技术上的第一大步并且wifi以网卡几口的方式嵌入笔记本电脑上.此 ...

  9. 常用的色彩体系简单介绍

    一般来说现在普遍认可的4大色彩体系是德国奥斯瓦尔德颜色体系.瑞典NCS色彩体系.美国Munsell颜色体系.日本PCCS颜色体系.但是自制世界标准的只有三家,分别是美国的曼彻尔(munsell)德国的 ...

最新文章

  1. error while loading shared libraries的解決方法
  2. osg节点访问和遍历
  3. jquery 性能优化与实践
  4. 控制反转_.NET Core ASP.NET Core Basic 12 控制反转与依赖注入
  5. VirtualBox 桥接模式
  6. python编程语言-Python有望超越Java排第二?风变编程解析编程语言新趋势
  7. 【高电复习3】频谱的线性搬移、振幅调制、解调、混频
  8. 图像处理库 FreeImage的简述
  9. 如何使用易媒助手对文章进行原创检测
  10. cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用简介,目录书摘...
  11. windows下jenkins批处理执行git pull失败的原因
  12. NVIDIA GPU显卡介绍
  13. php7微信公众号41005,微信公众号添加永久图片素材为什么老是报41005
  14. Notepad 追加字符
  15. 群论:群的定义与阿贝尔群
  16. LM7805的特殊使用方法
  17. 个人微信开发协议sdk接口API分享
  18. Docker 1.12.1初体验
  19. 苹果鼠标怎么充电_无线充电器怎么用?看一次就会了!-装修攻略
  20. 毕业设计 Stm32智能疫情防控门禁系统 - 单片机 嵌入式 物联网

热门文章

  1. java -cp 引用多个包_javac编译单文件、多文件引入jar包、-cp解决无法加载主类问题...
  2. 海思芯片对比选型_海思芯片的选型及特征参考说明大全
  3. mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
  4. android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果
  5. 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
  6. php两次访问时间,php – 检查当前时间是否介于两次之间,可能会有几天的时间
  7. drupal安装教程 linux,如何在Fedora Linux上安装Drupal 7
  8. php中的for循环最多循环多少次,php - 我在PHP中有2次时间,如何运行foreach循环来遍历所有这些日子? (最后24小时同时循环1小时!) - 堆栈内存溢出...
  9. 环信ease-sdk-3.3.4_r1 集成用户头像 昵称功能的简单处理方法
  10. r语言向量代码如何创建函数c,R中向量基本操作:创建、运算、访问