【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(三)

Android安全加密:消息摘要Message Digest 1. 常见算法MD5、SHA、CRC 等2. 使用场景 对用户密码进行md5 加密后保存到数据库里 软件下载站使用消息摘要计算文件指纹,防止被篡改 数字签名(后面知识点) 百度云,360网盘等云盘的妙传功能用的就是sha1值 Eclipse和Android Studio开发工具根据sha1值来判断v4,v7包是否冲突 据说银行的密码使用的就是MD5加密(因为MD5具有不可逆性) 例如软件下载站数据指 阅读详情

转载自:http://blog.youkuaiyun.com/haofeng82/article/details/6768511


最近在看JAVA安全方面的东东。简单地说,安全包括访问控制、数据安全两部分。安全访问控制是根据系统需求进行设计的,对资源进行访问控制的一种措

施。而数据安全包括数据传输过程中的安全防范措施,包括数据完整性、传输安全性、接收/发送方不可否认性等方面。下面就数据完整性验证部分做简单的

介绍。

假如我要下载一个最新版本的tomcat7 ,我会访问http://tomcat.apache.org/download-70.cgi。在下载列表中,我可以点击链接进行下载。但如何保证在

下载过程中,没有被其他程序篡改过?其他程序可能是网络传输过程中的第三方盗窃者,也有可能是我本地环境中存在的不良程序,如木马。在apache的下

载列表旁边,我们会发现有个md5的链接,点击打开之后,会出现如下字符串:cbad484f0b02f0daf775137aee0f4e2e *apache-tomcat-7.0.21.zip。这是做什

么用的呢?
这是一十六进制的编码字符串,又称“数字指纹”。他其实就是对原版文件(发送方发送的文件)完整性的验证标识符。当我们把文件下载到本地后,可以

自己对其进行验证,若验证的结果与发送方提供的指纹一致的话,则表明,在传输过程中,数据文件没有被篡改或其他损耗。

在JAVA中,我们可以借助JDK自带的包或者第三方安全工具包对其进行完整性验证工作。这里使用了BouncyCastle 工具包,下载地址为:http://www.bouncycastle.org/download/bcprov-jdk16-146.jar

代码如下:

public static void testInputStream(String filePath){
   /**
    * 使用BouncyCastleProvider,需加载对应的包。
    */
   Security.addProvider(new BouncyCastleProvider());
   Provider provider = Security.getProvider("BC");
   try {
    /**
     * 使用MD5进行完整性校验
     */
   MessageDigest digest = MessageDigest.getInstance("MD5",provider);
   /**
    * 获取文件流
    */
   FileInputStream in=new FileInputStream(filePath);
   DigestInputStream din =new DigestInputStream(in,digest);
   int bfSize=40000000;
   int length=in.available();
   int currentSize=0;
   boolean goon=true;
   /**
    * 根据文件流更新摘要数据源
    */
   while(goon){
    byte[] buffer =new byte[bfSize];
    int readSize=bfSize;
    if((length-currentSize)<bfSize){
     goon=false;
     readSize=length-currentSize;
     
    }else{
     goon=true;
     readSize=bfSize;
     
    }
    din.read(buffer, 0, readSize);
    if(goon==false){
     currentSize +=readSize;
    }else{
     currentSize+=bfSize;
    }
    
   }
   /**
    * 生成摘要信息
    */
   byte[] output = digest.digest();
   /**
    * 生成十六进制字符串
    */
   String outputStr =new String(Hex.encode(output));
   System.out.println("filePath:"+filePath);
   System.out.println("MD5:"+outputStr);
  } catch (NoSuchAlgorithmException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 public static void main(String[] args){
  
  String filePath="E:/软件/os/apache-tomcat-7.0.21.zip";
  testInputStream(filePath);
  
 }

小程序接口安全:从CryptoJS到UserCryptoManager的选型与实战 在前端安全领域,数据加密是保障接口安全、防止数据泄露与篡改的核心技术。其基本原理是通过密码学算法对传输数据进行变换,确保信息的机密性、完整性与不可否认性。对于微信小程序这类资源受限的移动端应用,传统的纯JavaScript加密库(如CryptoJS)虽然功能全面,但会带来显著的包体积增长和潜在的性能开销,影响用户体验。随着微信官方推出原生加密API UserCryptoManager,开发者获得了更优的技术选择。该API由客户端原生实现,执行效率高且不占用包体积,特别适用于对性能敏感、需要严格控制包大小的生 阅读详情

相关推荐

爬虫工程师实战指南:SHA算法逆向与签名破解全解析

哈希算法是计算机安全领域的基石技术,它通过单向散列函数将任意长度数据映射为固定长度的唯一摘要,具有确定性、快速性和雪崩效应等核心特性。其不可逆性保障了密码存储和消息完整性验证的安全基础,而HMAC等衍生技术进一步强化了消息认证。在工程实践中,哈希算法广泛应用于API签名、数据完整性校验和设备标识生成等场景,是保障网络通信安全的关键组件。对于爬虫与数据采集开发者而言,理解并逆向哈希算法生成的签名参数(如sign、token)是突破数据加密壁垒的核心技能。本文聚焦SHA系列算法,深入剖析其识别方法、参数拼接逻辑

weixin_33812433的博客 327

iOS AES加密库AESCipher-iOS详解:从原理到跨平台实践

对称加密是保障数据安全的核心技术之一,其中AES(高级加密标准)因其高安全性和高效率成为行业主流。其原理基于分组密码,通过多轮替换和混淆操作确保数据机密性。在移动开发领域,正确实现AES加密对保护用户敏感信息具有重要技术价值,尤其在iOS平台,直接使用系统CommonCrypto框架涉及密钥处理、模式选择等复杂细节。AESCipher-iOS库通过封装这些底层操作,提供了开箱即用的解决方案,显著降低了开发门槛。该库支持CBC模式与PKCS7填充,并采用SHA256进行密钥派生,增强了安全性。在实际应用场景中

jlins_you的专栏 334

Java消息摘要:MD5 验证数据完整性、密码的加密

MD5(Message-Digest Algorithm 5)是一种被广泛使用的密码散列函数,是一种不可逆的加密算法,该算法可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1991年公布,用以取代 MD4 算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解。

pan_junbiao的博客 858

JAVA中进行数据完整性验证

最近在看JAVA安全方面的东东。简单地说,安全包括访问控制、数据安全两部分。安全访问控制是根据系统需求进行设计的,对资源进行访问控制的一种措 施。而数据安全包括数据传输过程中的安全防范措施,包括数据完整性、传输安全性、接收/发送方不可否认性等方面。下面就数据完整性验证部分做简单

好风的老巢 1万+

等保2.0 安全计算环境 ——Windows服务器(三级系统)

1.身份鉴别 A.应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度并要求定期更换。 1)核查用户是否需要输入用户名和密码才能登录 2)核查Windows默认用户名是否具有唯一性 3)选择 控制面板 ==> 管理工具 ==> 计算机管理 ==> 本地用户和组 ,核查有哪些用户,并尝试使用空口令登录。 4) 选择 控制面板 ==> 管理工具 ==> 本地安全策略 ==> 账户策略 ==> 密码策略;核查密码策略是否合理。 B.应具

weixin_54438700的博客 2万+

java完整性校验解决方案

JAVA中进行数据完整性验证 最近在看JAVA安全方面的东东。简单地说,安全包括访问控制、数据安全两部分。安全访问控制是根据系统需求进行设计的,对资源进行访问控制的一种措施。而数据安全包括数据传输过程中的安全防范措施,包括数据完整性、传输安全性,接收/发送方不可否认性等方面。下面就数据完整性验证部分做简单的介绍。 下载过程中,没有被其他程序算改过?其他程序可能是网络传输过程中的第三方盗窃者,也有可能是本地环境中存在的不良程序,如木马。在apache的下载列表旁边,我们会发现有个md5的链接,点击打开之后,会出现如下字符串:cbad484f0b02f0daf775137aeeOf4e2e"apache tomcat-7.0.21zip。这是做什么用的呢? 这是一十六进制的编码字符串,又称“数字指纹”。他其实就是对原版文件(发送方发送的文件)完整性的验证标识符。当我们把文件下到本地后,可以自己对其进行验证,若验证的结果与发送方提供的指纹一致的话,则表明,在传输过程中。数据文件没有被算改或其他损耗。

确保数据完整性:Java中的常用参数校验技术详解

有时候,内置的校验注解无法满足复杂的业务需求,这时可以通过实现自定义校验注解来扩展校验逻辑。String message() default "密码复杂度不足";Class <?Class <?// 自定义校验逻辑:密码必须包含数字、大写字母、小写字母和特殊字符 return value . matches("(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!',?} }String message() default "密码复杂度不足";Class <

一勺菠萝丶的博客 1858

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4314

MessageDigest生成随机文件名(信息摘要)

MessageDigest生成随机文件名(信息摘要)使用MessageDigest新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图...

qq_33880027的博客 536

5种隐藏代码到图片的实用技巧:从Notepad++到Linux命令全解析

本文详细解析了5种将代码或文本隐藏到图片中的实用数据隐写技巧。从Notepad++尾部追加、Windows命令行合并,到编辑图像元数据、使用十六进制编辑器,再到Linux的cat/dd命令,全面覆盖了从图形界面到命令行的工程化实践方法,帮助开发者和安全研究人员掌握隐蔽信息传输与存储的核心技术。

hh234的博客 353

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 438

【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(一)

使用MD5/SHA-1对密码进行加密,并验证两个加密后的密码是否相同。 需要使用到 java.security  类 MessageDigest java.lang.Object java.security.MessageDigestSpi java.security.MessageDigest   public abstract clas

cangchen的专栏 1613

思博伦Spirent TestCenter创建单播流uni-stream

Traffic Generator列表中会出现刚才创建的uni-stream,创建完成。通常测试情况下,主要对Ethenet II和IPv4 Header进行配置。(通常情况下,如果流配置比较规范,选择任意端口接收,也没问题。编辑uni-stream基本信息。配置本条流由STC哪个端口接收。

辗转反测的博客 1681

Android 中数据加密 ---- SHA加密

前言: SHA 家族有SHA-1、SHA-224、SHA-256、SHA-384、SHA-512,算法详细可以看: 数据加密 ---- SHA 加密 数据加密 ---- SHA-2 加密 在Android 中同MD5 的使用,都是使用的MesssageDigest 类,只是算法的名称不同,本文用SHA-1为例,其他的几种都可以用同样的方法。   更多的加密可以看: 数据加密 ----...

私房菜 1273

SAP成本控制范围配置全流程:从货币参数到标准层次(附2024最新SPRO路径)

本文详细拆解了SAP成本控制范围(Controlling Area)的完整配置流程,涵盖从货币与估价参数文件定义、参数文件分配到控制范围,再到成本中心标准层次创建等核心步骤。文章提供了2024年最新的SPRO导航路径和实战配置要点,帮助顾问构建稳健、可扩展的管理会计基础架构,并附有常见问题排查指南。

java5的博客 939

S32K144 ADC硬件触发实战:PDB与TRGMUX配置避坑指南

本文深入解析了S32K144微控制器中ADC硬件触发的两种核心方案:PDB与TRGMUX。通过对比其架构差异、详细配置流程及常见问题排查,提供了从寄存器操作到DMA联动的完整优化指南,旨在帮助开发者解决多通道采样时序不稳、CPU负载过高等实际难题,实现高效稳定的数据采集。

weixin_29168153的博客 442

android 加密

1.通过AES算法对文本进行加密解密 package com.example.day43.jiami; import android.util.Log; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.securit

qiuyejingmei1016的博客 399

伯德图详解:从传递函数到系统稳定性的频域分析

在自动控制与控制系统设计中,理解系统对不同频率输入信号的响应特性,是分析和设计稳定系统的核心基础。频率响应描述了系统对正弦输入的幅值增益与相位变化规律,而伯德图作为最直观的频域分析工具,通过对数坐标将宽频带特性压缩成一条清晰曲线,让工程师无需复杂计算即可快速评估系统性能。从典型环节的渐近线绘制,到相位裕度、幅值裕度的读取,伯德图贯穿了系统稳定性判断、控制器参数整定及噪声抑制等关键场景。本文结合实际调试经验,系统讲解伯德图的绘制原理与读图方法,帮助读者快速掌握从传递函数到工程应用的核心技能。

weixin_34535286的博客 336

逆向工程入门:常见编码与加密算法识别与实战分析

在软件安全与逆向工程领域,编码与加密算法是保护数据与通信的核心技术。编码(如Base64、十六进制)旨在将二进制数据转换为可安全传输的文本格式,而加密算法(如AES、SM4、RSA)则通过密钥确保数据的机密性与完整性。理解这些算法的原理与特征,对于分析软件行为、进行安全评估至关重要。在逆向工程实践中,快速识别算法(如通过常量S盒、特定字符串模式)并定位密钥,是解密网络协议、分析文件格式或绕过验证机制的关键步骤。本文聚焦于逆向分析中高频出现的Base64、AES等算法,通过实战案例演示如何利用静态特征与动态H

weixin_33859844的博客 392

n8n智能体开发:Microsoft Outlook 节点

使用 Microsoft Outlook 节点可以自动化 Microsoft Outlook 工作流程,并将其与其他应用程序集成。n8n 内置支持多种 Microsoft Outlook 功能,包括创建、更新、删除和获取文件夹、邮件及草稿等操作。

王国平的博客 570

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

密码应用安全性评估实施要点之二密码技术应用要求与实现要点(4)

应用和数据安全要求与实现要点总则实现要点概述1) 身份鉴别2) 访问控制信息和敏感标记完整性3) 数据传输保密性4) 数据存储保密性5) 数据传输完整性6) 数据存储完整性7) 日志记录完整性8) 重要应用程序的加载和卸载9) 抗抵赖10) 密码模块的实现 总则 应用和数据安全应用总则如下: ① 采用密码技术对登录用户进行身份鉴别。 ② 采用密码技术的完整性功能来保证系统资源访问控制信息的完整性。 ③ 采用密码技术的完整性功能来保证重要信息资源敏感标记的完整性。 ④ 采用密码技术保证重要数据在传输过程中的保

Lapedius的博客 4954

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

文件完整性md5校验工具_安全导学|等保2.0系列安全计算环境之数据完整性、保密性测评...

点击上方蓝字关注我们!一、前言等级测评中,相信很多测评师在内的人都不是很了解数据的完整性和数据的保密性,因此本文将结合商密测评角度浅淡数据的完整性和保密性的理解和测评。如有错误,欢迎指正。二、定义2.1完整性通俗的来说就是数据不被篡改和非授权访问。目前完整性主要是通过哈希算法来实现。国密算法中,能够提供数据完整性的算法主要是:SM3。国际算法中,能够提供数据完整性的算法主要是:MD5、S...

weixin_39670246的博客 1294

Java中的校验性判断

在软件开发中,校验性判断是确保数据完整性和正确性的重要手段。在Java中,校验性判断通常用于验证输入数据是否符合预期的格式、范围或条件。本文将探讨Java中进行校验性判断的不同方法,包括使用断言、异常处理、以及第三方库等方式。

qq_56438516的博客 693

Java 验证请求数据完整性信息

CreditAntifraudReq 请求接收实体类package com.frms.exchange.command;import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.validator.constraints.NotEmpty;import java

_binlong的博客 3132

2021-04-12

client does not support authentication protocol requested by server 错误原因 使用MySQL客户端Navicat连接数据库MySQL8.0,MySQL8.0之前的版本中加密规则是mysql_native_password,而MySQL8.0,加密规则是caching_sha2_password 3、解决办法 (1)将加密规则还原成mysql_native_password 方法1 (亲测有效) https...

studyvcmfc的专栏 193
上一篇: 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest简介(二)
下一篇: 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】校验数据传输的完整性常用方式
cangchen
博客等级 码龄18年 108粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值