android MD5和SHA1加密实例

//找了好久,网上的很多加密结果不对,最后百度加我自己修改成功解决问题

public class MD5 {

private static String key = "a6U&1$Ip[Jr/sed]Rfvn=O>Mz+}lXN*%-gLcGD|0";

//MD5加密实例

public static String getMD5(String str) throws NoSuchAlgorithmException {

MessageDigest md5 = null;

try {

md5 = MessageDigest.getInstance("MD5");

} catch (Exception e) {

e.printStackTrace();

return "";

}

char[] charArray = str.toCharArray();

byte[] byteArray = new byte[charArray.length];

for (int i = 0; i < charArray.length; i++) {

byteArray[i] = (byte) charArray[i];

}

byte[] md5Bytes = md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

for (int i = 0; i < md5Bytes.length; i++) {

int val = ((int) md5Bytes[i]) & 0xff;

if (val < 16) {

hexValue.append("0");

}

hexValue.append(Integer.toHexString(val));

}

return hexValue.toString();

}

public static String byte2hex(byte[] b) {

String hs = "";

String stmp = "";

for (int n = 0; n < b.length; n++) {

stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));

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

hs = hs + "0" + stmp;

} else {

hs = hs + stmp;

}

}

return hs;

}

//SHA1 加密实例

public static  String encryptToSHA(String info) {

byte[] digesta = null;

try {

// 得到一个SHA-1的消息摘要

MessageDigest alga = MessageDigest.getInstance("SHA-1");

// 添加要进行计算摘要的信息

alga.update(info.getBytes());

// 得到该摘要

digesta = alga.digest();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

// 将摘要转为字符串

String rs = byte2hex(digesta);

return rs + key;

}

}

时间: 2024-12-17 15:33:02

android MD5和SHA1加密实例的相关文章

python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID

首先先来介绍一下md5 和 sha1 的概念 MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法).128位长度.目前MD5是一种不可逆算法. 具有很高的安全性.它对应任何字符串都可以加密成一段唯一的固定长度的代码. SHA1 SHA1的全称是Secure Hash Algorithm(安全哈希算法) .SHA1基于MD5,加密后的数据长度更长, 它对长度小于264的输入,产生长度为160bit的散列值.比MD5多32位. 因此,比MD5更加安全,但SHA

delphi base64 md5与sha1加密单(cnvcl)

今天一直在研究delphi中的base64和sha1,使用的是http://www.cnpack.org的cnvcl中的单元,CnSHA1.pas和CnBase64.pas,很感谢cnpack组的贡献,让我们方便的在delphi中使用base64与sha1加密,还有md5. 在使用单次加密时还和php的结果还可以说一样,就是php都是小写,delphi是大写,但两次加密后结果就完全不一样的,因为大小写二次加密结果是不一样的,这一点要注意. 使用这三种加密方式时要分别引用CnSHA1,CnBase

ASP.NET中MD5与SHA1加密的几种方法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要获得一个随机长度的信息并产

iOS 中MD5和sha1加密

#import "CommonCrypto/CommonDigest.h" -(NSString *)getSha1String { NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutabl

Python md5 和 sha1 的使用

测试版本: Python 2.7 测试说明: Python 内置的 hashlib 模块中有 md5 和 sha1 加密方法,可以直接使用. md5加密 import hashlib data = 'This a md5 test!' hash_md5 = hashlib.md5(data) hash_md5.hexdigest() sha1加密 import hashlib hashlib.sha1('This is a sha1 test!').hexdigest() md5加密对比两个文件

MD5和SHA-1

MD5和SHA-1都是我们耳熟能详的术语了,很多人可能知道他们跟加密有关系,但是他们是怎么做到加密的,他们各自的特点又是什么.我来简单的讲一讲. MD5和SHA-1都被称作哈希(Hash)函数,用过Java语言的人对这个术语应该相当熟悉.Java类库里的Object类定义了hashCode这个函数,但是java的概念略有不同.正式的哈希函数的定义是"把任意长度的数据计算成固定长度的数据".也就是说函数的输入是任意长的,输出总是固定长度的.MD5和SHA-1是两种加密用哈希函数,MD5的

Java/android下哈希sha1和MD5的实现

Android MD5加密算与J2SE平台一模一样,因为Android 平台支持 java.security.MessageDigest这个包.实际上与J2SE平台一模一样. 算法签名: [java] view plaincopy String getMD5(String val) throws NoSuchAlgorithmException 输入一个String(需要加密的文本),得到一个加密输出String(加密后的文本) [java] view plaincopy package com

.net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个程序,如图: 关键代码 using System.Security;using System.Security.Cryptography;using System.Web;using System.IO; //MD5 不区分大小写的        //type 类型,16位还是32位,16位就是取3

ASP.NET实现MD5加密和SHA1加密

MD5加密和SHA1加密的命名空间是在using System.Web.Security; /// <summary> /// 返回加密字符串 /// </summary> /// <param name="content">要加密的字符串</param> /// <param name="Type">加密类型,默认MD5,其它值SHA1</param> /// <returns>&