Azure Blob MD5算法

这篇具有很好参考价值的文章主要介绍了Azure Blob MD5算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Azure Blob MD5算法

背景

笔者所在项目采用Azure Blob来作为文件存储解决方案, 上传的大文件需要一种机制来验证文件的完整性, 而业内通用的解决方案就是用MD5来做校验.

Azure Blob在我们上传文件且没有指定Content MD5时, 就会自动帮我们计算文件的MD5值.

通过Microsoft Azure Storage Explorer工具右键查看任何文件的Properties时, 可以看到该文件的MD5值

azure blob 获取md5,架构私房菜,azure,java,microsoft,blob,MD5

但是该文件通过文件MD5在线计算工具得到的结果却大相径庭

azure blob 获取md5,架构私房菜,azure,java,microsoft,blob,MD5

通过调查得知Azure Blob的Content MD5有自己的计算方式(WTF???!!!)

azure blob 获取md5,架构私房菜,azure,java,microsoft,blob,MD5

通过不断Bing Search & Coding, 终于在本地算出来了和Azure Blob一样的MD5值

azure blob 获取md5,架构私房菜,azure,java,microsoft,blob,MD5

azure blob 获取md5,架构私房菜,azure,java,microsoft,blob,MD5

核心步骤

一共三步:

  1. 用传统md5算法对文件计算md5值
  2. 将md5值从16进制字符串转换为byte数组
  3. 基于byte数组计算base64编码后的字符串

Java代码示例

    @Test
    void testAzureBlobMD5() {
        //计算文件MD5
        String md5String = null;
        try (FileInputStream inputStream = new FileInputStream({yourFilePath})) {
            md5String = DigestUtils.md5DigestAsHex(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("md5String: " + md5String);
        //16进制String转bytes数组
        byte[] bytes = HexUtils.fromHexString(md5String);
        //base64编码
        String blobMD5 = Base64.getEncoder().encodeToString(bytes);
        System.out.println("blobMD5: " + blobMD5);
    }

参考

在线文件MD5计算

power-shell计算Azure Blob MD5文章来源地址https://www.toymoban.com/news/detail-804255.html

到了这里,关于Azure Blob MD5算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 哈希算法--MD5算法

    哈希算法也称摘要算法、散列算法,哈希函数的输入为一段 可变长度x ,输出一 固定长度串 ,该串被称为 x的哈希值 。 Hash函数满足以下几个基本需求: (1)输入值x为任意长度 (2)输出值长度固定 (3)单向函数,算法不可逆 (4)唯一性,很难找到两个不同的输入会得到

    2023年04月18日
    浏览(72)
  • MD5 算法

    MD5(Message Digest Algorithm 5)是消息摘要算法的一种,它可以将任意长度的“消息”(也可以是文件)计算出一个固定长度的“摘要”,通常是128位。MD5广泛应用于数字签名、数据完整性校验、密码存储等领域。在Java中,可以使用java.security.MessageDigest类来实现MD5算法。 MD5算法的流

    2024年02月05日
    浏览(74)
  • MD5算法

    一、引言 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列算法,由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密,将消息压缩成固定长度的摘要(通常为128位)。在密码学、网络安全等领域有着广泛的应用。本文将从算法原理、优缺点及替代方

    2024年02月04日
    浏览(46)
  • 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5

    我们要明白,MD5不是加密算法,而是一种信息摘要算法,主要用于保证数据的完整性,以及数据不被篡改。既然不是加密算法,那么就不存在解密的说法,但是为什么网上有很多网站声称能够解密MD5呢? MD5算法不可逆 Md5是计算机安全领取常用的一种密码散列函数,主要用于

    2024年02月11日
    浏览(56)
  • App备案——获取公钥和MD5签名

    阿里云App备案入口:https://beian.aliyun.com/pcContainer/myorder 当我们进行App备案时,需要填写App的公钥和MD5签名信息,公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 特征信息名词 说明 (安卓 Android)包名 APP 包名是一个应用程序的唯一

    2024年01月18日
    浏览(39)
  • 算法基础--MD5算法介绍

      MD5再开发过程中经常碰到的一种算法,因此感觉有必要对其原理进行更深入的了解一下。   散列函数,也称作哈希函数,消息摘要函数,单向函数或者杂凑函数。散列函数主要用于验证数据的完整性。通过散列函数,可以创建消息的“数字指纹”,消息接收方可以通过

    2024年02月08日
    浏览(43)
  • 安卓keytool获取不到签名文件的MD5

    目前通过 keytool -list -v -keystore xxx.jks 这种方法获取签名的md5时,只能显示SHA1和SHA256,不显示md5: 解决办法: 1.先将自己的keystore配置进app下的build.gradle中: 2.打开AndroidStudio的Gradle,找到Tasks-android-signingReport,双击: 找到Config为release,Alias与你签名文件的别名一致的信息,即可

    2024年02月11日
    浏览(42)
  • android上架备案公钥和md5获取工具

    最近很多公司上架遇到了一个问题,就是要提供app的备案证明,现在android上架都需要备案了,但是我们的证书都是通过工具生成的,哪里知道公钥和md5那些东西呢?无论安卓备案还是ios备案都需要提供公钥和md5。 包括ios的备案也是,找了很多教程,都是叫我们通过代码来读

    2024年02月09日
    浏览(44)
  • APP备案(Android) - 获取签名证书公钥、MD5

    因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理,然后隔天就被要求提供一下app相关的的公钥和MD5,虽然很快就解决了这个事情,但忍不住又稍微衍生了一下,但行小步,莫问远方吧 关联Blog APP备案(Android) - 各应用平台对APP备案时间节点要求 APP备案(Android

    2024年02月04日
    浏览(54)
  • Android/iOS APP备案- MD5、公钥获取

    应工业和信息化部(工信部)要求, Android/iOS APP需要进行备案, 各备案平台要求填写应用APP的MD5、公钥、SHA-1值等。 以下通过Android、Windows、MacOS三个平台详细介绍获取方式。 APP备案流程:  Android/iOS APP备案流程 1、首先将需要获取MD5、公钥值的APP安装到Android手机; 2、在手机自带的

    2024年02月03日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包