Android之简单加密–MD5 加密

在Android中需要对各种数据进行加密的操作,比如用户短信备份的数据加密、用户账户登陆的密码加密以及应用于服务器连接传递重要数据的加密,用处非常的多
这里介绍一下MD5加密:

案例驱动:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

public class MD5Utils {

     // 进行md5的加密运算

     public static String encode(String password) {

        // MessageDigest专门用于加密的类

        try {

            MessageDigest messageDigest = MessageDigest.getInstance("MD5");

            byte[] result = messageDigest.digest(password.getBytes()); // 得到加密后的字符组数

            StringBuffer sb = new StringBuffer();

            for (byte b : result) {

               int num = b & 0xff// 这里的是为了将原本是byte型的数向上提升为int型,从而使得原本的负数转为了正数

               String hex = Integer.toHexString(num); //这里将int型的数直接转换成16进制表示

               //16进制可能是为1的长度,这种情况下,需要在前面补0,

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

                   sb.append(0);

               }

               sb.append(hex);

            }

            return sb.toString();

        catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

            return null;

        }

     }

 }

MD5的加密实现方式是被谷歌屏蔽起来的,所以这只能想黑盒子测试一样去了解它的作用,那么这里是将传入的字符串转换成16位16进制的字符串从而起到加密的作用,中间对于&0Xff也已经做出了解释。这里顺便记录一下java的基础知识,不用真的还比较容易忘记。

java 8大基本数据类型:

类型            长度(字节为单位,一个字节是8位也就是0000 0000,如果是字就是16位 0000 0000 0000 0000)
boolean–>1
char–>2

byte–>1
short–>2
int–>4
long–>8

float–>4
double–>8

PS:在java中,有一个字符串的操作

案例驱动:


1

2

3

4

5

6

7

8

9

10

public void test3()

 {

     <span style="text-decoration: underline;">String</span> password = "1203";

     byte[] bytes = password.getBytes();

     for(byte b: bytes)

     {

        System.out.println(b);

     }

 }

需要做出的基本解释,就是这里java会将字符串中的内容转换成字节数组进行输出,规律如下:

      1. 英文单字 一个对应一个字节
      2. 数字一般也是一个数字对应一个字节
      3. 中文的话一般是一个中文对应3个字节来表示。(这里不是非常的明白,为什么一个中文对应3个字节)
时间: 2024-10-06 11:00:24

Android之简单加密–MD5 加密的相关文章

C#,ASP.NET简单的MD5加密,解密

简单的MD5加密 首先要有一个加解密的规则  就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create(); return ASCIIEncoding.ASCII.GetString(desCrypto.Key); } 然后就是加密 传入的参数分别为你要加密的字符串,

iOS之那几种加密 MD5加密.

前言: 好好活着,因为我们会死很久.---海腾 iOS之那几种加密 MD5加密.  接下来我们看代码 NSString+MD5.h   // // NSString+MD5.h // UI21_MD5加密 // // Created by JR_Rafael on 16/1/11. // Copyright © 2016年 lanou3g. All rights reserved. // #import <Foundation/Foundation.h> @interface NSString

Android对敏感数据进行MD5加密(基础回顾)

1.在工具类的包下新建一个进行md5加密的工具类MD5Utils.java 1 package com.example.mobilesafe.utils; 2 import java.security.MessageDigest; 3 import java.security.NoSuchAlgorithmException; 4 public class MD5Utils { 5 /** 6 * md5加密方法 7 * @param password 8 * @return 9 */ 10 p

JAVA中简单的MD5加密类(MD5Utils)

MD5加密分析: JDK API: 获取对象的API: 加密的API: 1 package cn.utils; 2 3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmException; 5 6 /** 7 * @author CQY13 MD5加密工具类 8 */ 9 public class MD5Utils { 10 11 /** 12 * 获取MD5加密 13 * 14 * @param

android HTTP发送及MD5加密收集

发送部分: public void MyFunction{ HttpClient httpclient = new DefaultHttpClient(); //你的URL HttpPost httppost = new HttpPost("http://www.eoeandroid.com/post_datas.php"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair&

iOS-数据加密-MD5加密

数据加密 iOS开发中关于数据加密算法使用最多的就是MD5和Base64,但是开发者中最喜欢的也就是MD5,所以今天就简单介绍一下MD5在吗去使用, 当然关于数据加密还是看公司使用什么,公司使用什么我们就用什么,这里只是一个借鉴或者其他方面需要. 一.简单说明 1.说明 在开发应用的时候,数据的安全性至关重要,而仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题. 如:可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据 “青花瓷”软件 因此:提交用户的隐私数据时

android 文件简单的自定义加密和解密

在android或其他项目中常常会下载和上传文件,为了这些文件的安全我们与服务器统一加密的key,即可进行加密解密文件. 代码: /** * 文件file进行加密解密 * * @param fileUrl * 文件路径 * @param key * 密码 * @throws Exception */ public static boolean decryptOrEncrypt(String fileUrl) { try { File file = new File(fileUrl); if (!

java 调用apache.commons.codec的包简单实现MD5加密

转自:https://blog.csdn.net/mmd1234520/article/details/70210002/ 1 import java.security.MessageDigest; 2 import java.security.NoSuchAlgorithmException; 3 4 import org.apache.commons.codec.digest.DigestUtils;//开发的jar包 使用更方便 5 public class MD5 { 6 7 /* 8

【iOS】MD5加密与网络数据安全

在做网络应用程序的时候, 时时刻刻要保证用户数据的安全, 因此要加密. MD5算法在国内用的很多. MD5算法的特点: *同样的数据加密结果是一样的.(32个字符) *不可逆的.(不能逆向解密) *可用于文件校验/指纹识别. MD5算法是公开的,iOS中已经包装好了MD5算法. 可以将其写成字符串的分类: - (NSString *)md5String { const char *string = self.UTF8String; int length = (int)strlen(string)