文档章节

MD5 的加密

金丨豆
 金丨豆
发布于 2016/07/24 17:43
字数 268
阅读 88
收藏 0
点赞 0
评论 0

本人博客地址:http://my.oschina.net/lijindou/blog

转载请标明原址:http://my.oschina.net/lijindou/blog/717003

/**
 * Created by admin on 2016/7/21.
 */

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 对外提供getMD5(String)方法
 *
 * @author randyjia
 */
public class MD5 {

    public static String getMD5(String val) throws NoSuchAlgorithmException {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(val.getBytes());
        byte[] m = md5.digest();//加密
        return getString(m);
    }

    private static String getString(byte[] b) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < b.length; i++) {
            sb.append(b[i]);
        }
        return sb.toString();
    }
}

使用的时候直接  MD5.getMD5(String);

补充 2016/08/23

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
    /*
     * MD5加密算法
     * 生成的是32位的算法
     */
    public static String encode(String text){

        try {
            MessageDigest digest = MessageDigest.getInstance("md5");
            byte[] result = digest.digest(text.getBytes());
            StringBuilder sb =new StringBuilder();
            for(byte b:result){
                int number = b&0xff;
                String hex = Integer.toHexString(number);
                if(hex.length() == 1){
                    sb.append("0"+hex);
                }else{
                    sb.append(hex);
                }
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return "" ;
    }

上面的方法生成的是32位小写的,如果需要生成大写的就在sb.toString()后加.toUpperCase()便可。

32位小写

return sb.toString();

32位大写

return sb.toString().toUpperCase();

16位小写

return sb.toString().substring(8,24);

16位大写

return sb.toString().substring(8,24).toUpperCase();

 

© 著作权归作者所有

共有 人打赏支持
金丨豆
粉丝 8
博文 33
码字总数 22754
作品 0
深圳
程序员
iOS 常见信息加密方法

NO.1 MD5 MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。MD5主要特点是不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对...

FTD_SL
2016/08/05
16
0
iOS里常见的几种信息编码、加密方法简单总结

一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。 MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对...

DevShaw
2016/04/07
124
0
2.请求安全-- MD5的必要性以及实际应用场景

MD5的必要性以及实际应用场景 前言 MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希...

喵了_个咪
2015/08/21
0
0
php的加密函数 md5,crypt,base64_encode 等使用介绍

php 在做注册、登录或是url 传递参数时都会用到 字符变量的加密,下面我们就来简单的介绍下:php 自带的加密函数 不可逆的加密函数为:md5()、crypt() md5() 用来计算 MD5 哈稀。语法为:str...

Junn
2013/01/24
0
0
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书...

mrliuze
2015/05/27
0
0
关于MD5算法的问题。。

大家好!问题是这样的:我今天介绍MD5加密算法时,一个老师反驳我说MD5算法不算是加密算法,他的理由是加密算法都是可逆的,而MD5算法不是可逆的,所以不能叫做加密算法。我想请问大家,这个...

enjoy
2011/07/24
3.4K
16
iOS中DES与MD5加密方案

MD5算法和DES算法是常见的两种加密算法。 MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那么它有什么用的,它的用处大了,大多数的登录功能都会使用到这种算法。...

珲少
2015/04/03
0
0
关于Oracle针对中文的md5加密

大部分都是讲基本oracle md5加密,在使用中发现,针对中文md5加密,与程序中加密结果不一致。 经研究发现需要在加密之前经两次转码才行。 [sql] view plain copy CREATE OR REPLACE FUNCTION...

Zero零_度
2016/10/08
17
0
常用的加密算法

概述 加密算法分为单向加密和双向加密,明文数据通过加密后传输,以确保传输和存储安全 单向加密包括 MD5、SHA、BCrypt 加密算法等,它是不可逆的,也就是无法将加密后的数据恢复成原始数据,...

林塬
2017/12/25
0
0
iOS 加密与解密

iOS RSA的网络安全模型、iOS签名机制总结(登录、token安全、签名) 一.登录、登录保持(http请求) 登录机制大概可以分为一下三个阶段: 第一种网络请求情况(安全级别:II) 一般的情况是这...

linweida
2016/09/20
379
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
7分钟前
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
14分钟前
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
30分钟前
0
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
30分钟前
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
31分钟前
0
0
jq 判断复选框是否被选中,复选框后台接收

1. 效果 2. 代码 html部分: JS部分: var rememberLogin = $("#rememberLoginId").is(':checked')//获取复选框是否被选中 var rememberLoginval = $("#rememberLoginId").attr('value')//拿......

Lucky_Me
38分钟前
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
38分钟前
0
0
《趣谈网络协议》之为什么要学习网络协议?

一、协议 1.协议的定义 简单说协议就是一个规则,保证沟通交流双方可以互相听懂、理解或者可以双方合作可以顺利进行的一个约定和规则。 2.生活中例子 (1)有一种叫“程序猿”的物种,敲着一种...

aibinxiao
40分钟前
1
0
Python数据分析numpy基础-维度的认识

什么是多维数组? 核心对象是同型的多维数组(简单理解就是一个表格,通常内容都是些数字),具有相同的数据类型。 概念: 1. axes(轴):数组的维度统称为轴。 2. rank:轴的数量称为rank。...

十年磨一剑3344
44分钟前
0
0
Java 正则表达式相关资料

1.java正则表达式过滤html标签

IT追寻者
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部