,,Android 安全加密:消息摘要Message Digest详解

,,Android 安全加密:消息摘要Message Digest详解

本文主要介绍Android安全加密的消息摘要Message Digest。这里整理了详细的资料,说明了如何使用消息摘要和注意事项。有需要的可以参考一下。

Android安全加密专题文章索引

Android安全加密:对称加密

Android安全加密:不对称加密

Android安全加密:消息摘要

Android安全加密:数字签名和数字证书

Android安全加密:Https编程

学习以上所有内容,如对称加密、非对称加密、消息摘要、数字签名等。作为了解数字证书工作原理的初步知识。数字证书是密码学中的终极武器,是人类几千年历史总结出来的智慧结晶。只有了解了数字证书的工作原理,才能理解Https协议的安全通信机制。最后,您可以在SSL开发过程中得心应手。

此外,对称加密和消息摘要可以单独使用。

系列知识点:

数字证书使用了上面学到的所有知识。

对称加密和非对称加密相结合实现密钥交换,然后双方使用密钥进行对称加密通信。

消息和非对称加密实现数字签名,根证书颁发机构对目标证书进行签名,检查时根证书用公钥进行检查。如果验证成功,则证书可信。

Keytool工具可以创建一个证书,然后发送给根证书颁发机构进行认证,然后直接使用自签名证书,还可以输出证书的RFC格式信息。

数字签名技术实现了身份认证和数据完整性保证。

加密技术保证了数据的机密性,消息摘要算法保证了数据的完整性,高效的对称加密保证了数据处理的可靠性,数字签名技术保证了操作的不可否认性。

通过以上内容的学习,我们应该能够掌握以下知识点:

基础知识:位、字节、字符、字符编码、十进制转换、io

知道如何使用对称加密解决实际开发中的问题。

知道对称加密、非对称加密、消息摘要、数字签名和数字证书出现是为了解决什么问题。

了解SSL通信流程

实践中如何请求Https接口?

1. 常见算法

MD5、SHA、CRC等。

2. 使用场景

用户密码通过md5加密并保存在数据库中。

软件下载站使用消息摘要来计算文件的指纹以防止篡改。

数字签名(后面的知识点)

百度云、360网盘等云盘的精彩传输功能使用sha1值。

而Eclipse和Android Studio开发工具根据sha1值判断v4和v7包是否冲突。

据说银行密码采用MD5加密(因为MD5是不可逆的)。

比如软件下载站数据指纹:http://dev.mysql.com/downloads/installer/

3. 使用步骤

//常用算法:MD5,SHA,CRC

message digest digest=message digest . getinstance(' MD5 ');

byte[]result=digest . digest(content . getbytes());

//消息摘要的结果通常会转换成十六进制字符串进行显示。

String hex=Hex.encode(结果);

//MD5结果为16字节(128位),转换成十六进制表示后长度为32个字符。

//SHA结果为20字节(160位),转换成十六进制表示后长度为40个字符。

System.out.println(十六进制);

汇总后的结果是固定长度的。不管你的数据有多大,哪怕只是一个字节或者一个G文件,汇总后的结果都是定长的。

经常听到有人问这个问题,MD5抽象后的结果是多少位?有人说是16,有人说是128,有人说是32。它有多长?这时我们要明白,16位是指字节数字,128位是指位数字,32位是指转换成十六进制显示的字符数字的结果。

4. 数字摘要原理

//获取实例

message digest digest=message digest . getinstance(' MD5 ');

digest . update(key . getbytes());

byte[]bytes=digest . digest(key . getbytes());

StringBuilder sb=new StringBuilder();

for(int I=0;I字节.长度;i ) {

字符串十六进制=整数。tohexstring(bytes[I]0x ff);

if (hex.length()==1){

某人(somebody的简写)追加(“0”);

}

某人追加(十六进制);

}

字符串十六进制字符串=sb。tostring();

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: