Java实现计算指定文件的SHA256

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

 SHA-256

SHA-256(Secure Hash Algorithm 256-bit)是一种密码学安全哈希算法,用于将任意长度的数据转换为固定长度的哈希值,通常为256位(32字节)。SHA-256是SHA-2(Secure Hash Algorithm 2)系列算法的一部分,被广泛应用于密码学和数据完整性验证等领域。

我们可以使用SHA-256验证文件的完整性

Java实现方式

public class DigestUtils {
    public static String calculateSHA256(String filePath) throws IOException, NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        try (FileInputStream fis = new FileInputStream(filePath)) {
            byte[] buffer = new byte[8192];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                md.update(buffer, 0, bytesRead);
            }
        }

        byte[] bytes = md.digest();
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }
}

Kotlin实现

object DigestUtils {
    @Throws(IOException::class, NoSuchAlgorithmException::class)
    fun calculateSHA256(filePath: String): String {
        val md = MessageDigest.getInstance("SHA-256")
        FileInputStream(filePath).use { fis ->
            val buffer = ByteArray(8192)
            var bytesRead: Int
            while (fis.read(buffer).also { bytesRead = it } != -1) {
                md.update(buffer, 0, bytesRead)
            }
        }

        val bytes = md.digest()
        val sb = StringBuilder()
        for (b in bytes) {
            sb.append(String.format("%02x", b))
        }
        return sb.toString()
    }
}

MD5

MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,用于将任意长度的数据转换为固定长度的哈希值,通常为128位(16字节)。MD5 的主要特点是产生的哈希值具有较高的唯一性和不可逆性,通常用于验证数据的完整性、密码存储、数字签名等领域。

Java

public class MD5Utils {
    public static String calculateMD5(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] hashBytes = md.digest(input.getBytes(StandardCharsets.UTF_8));

            // Convert the byte array to a hexadecimal string representation
            BigInteger number = new BigInteger(1, hashBytes);
            StringBuilder hexString = new StringBuilder(number.toString(16));
            while (hexString.length() < 32) {
                hexString.insert(0, "0");
            }
            return hexString.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

Kotlin实现文章来源地址https://www.toymoban.com/news/detail-824510.html

object MD5Utils {
    
    fun calculateMD5(input: String): String {
        try {
        val md = MessageDigest.getInstance("MD5")
        val hashBytes = md.digest(input.toByteArray(StandardCharsets.UTF_8))
        val number = BigInteger(1, hashBytes)
        val hexString = StringBuilder(number.toString(16))
        while (hexString.length < 32) {
            hexString.insert(0, "0")
        }
        return hexString.toString()
        } catch (e: NoSuchAlgorithmException) {
        e.printStackTrace()
        }    
        return ""
    }
}

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

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

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

相关文章

  • Java工具集 Hex、Hmac算法(MD5、SHA1、SHA256、SHA384、SHA512)、雪花算法SnowflakeId、redis基于Springboot工具类

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 专栏 描述 Java项目实战 介绍Java组件安装、使用;手写框架等 Aws服务器实战 Aws Linux服务器上操作nginx、git、JDK、Vue Jav

    2024年04月09日
    浏览(79)
  • Android 获取应用sha1和sha256

    在 Android 应用开发中,SHA-1(Secure Hash Algorithm 1)值是一种哈希算法,常用于生成应用的数字签名。这个数字签名用于验证应用的身份,并确保应用在发布到设备上时没有被篡改。 以下是生成 Android 应用的 SHA-1 值的步骤: 生成密钥库(KeyStore): 首先,你需要创建一个密钥库

    2024年02月07日
    浏览(59)
  • Android Apk签名算法使用SHA256

    Android apk签名算法使用SHA256 本文不介绍复杂的签名过程,说一下Android签名算法使用SHA256。 但是SHA1不是相对安全签名算法,SHA256更加安全一些。 一般大公司才会有这种细致的安全要求。 如何查看apk签名是否是SHA1还是SHA256 ··· 1、拿到apk文件,修改文件后缀为.jar 2、解压文件

    2024年04月08日
    浏览(111)
  • Android 应用签名证书的SHA1、MD5、SHA256值在哪获取?

    SHA1值分为发布版和调试版。MD5、SHA256与SHA1的获取是一样的。 调试版就是我们平时开发测试时用的默认签名文件。这个默认的签名文件一般是在c盘的用户名目录下的.android文件夹内。 默认文件就是  debug.keystore 获取调试版的SHA1值 : 回车后即可看到调试版的SHA1值了。

    2024年02月12日
    浏览(60)
  • Android studio获取证书的MD5/SHA1/SHA-256以及公钥的方法

    Android studio 获取MD5 SHA1 SHA-256 值命令:./gradlew signingReport Android studio 获取公钥:keytool -export -alias key0 -keystore key.keystore -file zhengshu.cer 一、获取MD5 SHA1 SHA-256 值 在Android项目中执行命令:./gradlew signingReport 然后以上操作执行完成之后,搜索你的证书名称,找到以下数据: 二、获

    2024年02月03日
    浏览(76)
  • openssl+sha256开发实例(C++)

    SHA-256(Secure Hash Algorithm 256-bit)是一种哈希算法,属于 SHA-2(Secure Hash Algorithm 2)家族的一员。SHA-256 产生的哈希值是一个256位(32字节)的二进制数字,通常以64个十六进制字符的形式表示。 以下是 SHA-256 的一些关键特点和应用: 安全性: SHA-256 被广泛认为是安全的哈希算法

    2024年01月17日
    浏览(49)
  • linux中校验文件的sha256sum值

    下载源文件和校验文件进行校验,防止被中间人篡改文件内容。 同理的还有yum仓库,加载第三方库时,要先导入一个key密钥。 sha256校验 这里用helm软件包示例 查看sha256文件的内容是包含下载源文件的sha256值和源文件名的对照 校验 -c 从文件中读取sha256的值并校验

    2024年02月13日
    浏览(55)
  • kali/windows/burpsuite/Python下计算md5,sha1,sha256,base64的值

    对明文进行加密使之变成密文时,常用到的有 md5,sha1,sha256,base64      情景 :假设对“202222804198”这串数字进行加密,windows和kali桌面上已存在一个“1.txt”的文件,文件内容为该数字( 文件中除了需要加密的内容外不要有空行,回车的存在 ) 首先简单了解certutil的用法

    2024年02月11日
    浏览(47)
  • 检验下载文件完整性、真实性——SHA256校验值

    在Windows64位系统下,于https://www.kali.org/get-kali/#kali-installer-images 下载kali的.iso文件。下载后在cmd跳转到下载路径,使用certutil -hashfile命令计算文件SHA256校验值,与网站提供值比对相同,则文件无问题。  

    2024年02月05日
    浏览(112)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包