首页 > 其他分享 >Android使用MD5加密

Android使用MD5加密

时间:2023-07-20 11:26:50浏览次数:37  
标签:加密 String result import java Android byte digest MD5

code

package com.jay.common;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密工具
 * */
public class Md5Utils {
    public static String get(String text) {
        String result = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] digest = md.digest(text.getBytes());
            result = toHexString(digest);
        } catch (NoSuchAlgorithmException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    public static String get(InputStream inputStream) {
        String result = null;
        try {
            byte[] buffer = new byte[8192];
            int len;
            MessageDigest md = MessageDigest.getInstance("MD5");
            while ((len = inputStream.read(buffer)) != -1) {//分多次读入文件,占用内存比较少
                md.update(buffer, 0, len);
            }
            inputStream.close();

            byte[] digest = md.digest();
            result = toHexString(digest);
        } catch (Exception ex) {
            ex.printStackTrace();
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }

    public static String get(File file) {
        String result = null;
        try {
            result = get(new FileInputStream(file));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return result;
    }

    private static String toHexString(byte[] digest) {
        StringBuilder sb = new StringBuilder();
        String hexStr;
        for (byte b : digest) {
            hexStr = Integer.toHexString(b & 0xFF);//& 0xFF处理负数
            if (hexStr.length() == 1) {//长度等于1,前面进行补0,保证最后的字符串长度为32
                hexStr = "0" + hexStr;
            }
            sb.append(hexStr);
        }

        return sb.toString();
    }
}

 

标签:加密,String,result,import,java,Android,byte,digest,MD5
From: https://www.cnblogs.com/xsj1989/p/17567802.html

相关文章

  • AndroidDeveloper Weekly No.1
    好文HermesEventBus-饿了么开源的Android跨进程事件分发框架Android开发你需要了解的Gradle配置Android自定义view详解GoogleI/O2016笔记:APK瘦身的正确姿势AndroidVector曲折的兼容之路深入浅出RecyclerView优秀开源项目Music-Player一款UI效果很棒的开源音乐播放器,做音......
  • 技术沙龙 | Android应用之插件化
    有印象的同学们应该知道我在今年的4月份举办了一场上海Android开发者聚会,具体可以见这几篇文章:当时规模浩大,邀请的演讲嘉宾都是一些热爱分享、大家耳熟能详的一些技术大牛,如大头鬼,胡凯,MarkZhai,吉鑫,光景等,而且捧场的还有医生、张涛、lightsky等大家熟知的ID,最后反响也很不错。举办这......
  • Android 8.0 Oreo 来啦!
    阅读文本大概需要2分钟。今天一大早,朋友就发给我这么一张图片:卧槽,原来Android8.0真的叫Oreo啊,这个真的有点没想到,这应该是跟奥利奥达成的合作,毕竟之前也是有过先例的,还记得当年Android4.4KitKat么?就是跟雀巢的合作,之后雀巢的KitKat饼干上都印上了Android小机器人。......
  • HJ36 字符串加密
    1.题目读题HJ36 字符串加密  这道题的意思是让您使用一种加密技巧,把一个字符串转换成另一个字符串。这种加密技巧的原理是这样的:首先,您需要选择一个单词作为密钥,比如TRAILBLAZERS。然后,您需要把这个单词中重复的字母去掉,只保留第一个出现的字母,比如TRAILBZES。接着......
  • Android 妙用TextView实现左边文字,右边图片
    原文:Android妙用TextView实现左边文字,右边图片-Stars-One的杂货小窝有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法:使用线性布局来实现或者使用约束布局,一个左对齐,一个右对齐这几天突然想到是否可以使用TextView的设置图标的方式实现,研究发现确实可......
  • 更改android studio sdk 下载
    更改AndroidStudioSDK下载路径配置在使用AndroidStudio开发Android应用时,我们经常需要下载和更新AndroidSDK以获取最新的开发工具和资源。默认情况下,AndroidStudio会将SDK下载到用户主目录下的一个隐藏文件夹中。然而,有时我们可能希望将SDK下载到其他位置,比如一个更大的磁盘......
  • 使用fossa工具扫描Android配置
    使用fossa工具扫描Android配置教程作为一名经验丰富的开发者,你可以帮助那些刚入行的小白们解决问题和指导他们。这篇文章将教会你如何使用fossa工具来扫描Android配置。让我们一起来看看整个流程吧!整个流程以下是使用fossa工具扫描Android配置的步骤。我们将使用表格来展示每个......
  • Android GO 版本源码中preferred network type显示
    AndroidGO版本源码中preferrednetworktype的显示作为一名经验丰富的开发者,我将向你解释如何在AndroidGO版本的源码中实现"preferrednetworktype"的显示。下面是实现这个功能的步骤:步骤概览步骤动作步骤1创建一个新的Android项目步骤2添加必要的权限步骤......
  • Android Chart
    AndroidChartAndroidChart是一个用于在Android应用程序中显示图表的开源库。它提供了各种类型的图表,包括折线图、柱状图、饼图等。这些图表可以帮助开发人员将复杂的数据可视化,使用户更容易理解和分析数据。安装AndroidChart库首先,我们需要在项目的build.gradle文件中添加以......
  • Android 10 activity启动流程
    Android10Activity启动流程1.概述在Android开发中,Activity是用户与应用交互的主要界面,了解Activity启动的流程对于开发者来说非常重要。本文将介绍Android10中Activity的启动流程,并提供相应的代码示例。2.Activity启动流程概览下表展示了Android10中Activity启动的主要步......