重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.security.MessageDigest;
创新互联建站制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站设计、成都网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为超过千家服务,创新互联建站网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
public class Test{
public static void main(String[] args) {
String t= "abcd";
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(t.getBytes("GBK"));
for(byte b:md.digest())
System.out.format("%02X",b);
} catch (Exception e) {
e.printStackTrace();
}
}
}
=========
88D4266FD4E6338D13B845FCF289579D209C897823B9217DA3E161936F031589
PHP验证
?php
echo hash('sha256', 'abcd');
88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589
验证无误
import java.security.*;
/*
* TestEncrypt.java
* Author: MKing
* Last Date: 2005-11-21
* Description: A test progrm to encrypt a string using MD5 or SHA-1,etc.
*/
public class TestEncrypt {
public TestEncrypt() {}
public String Encrypt(String strSrc,String encName) {
//parameter strSrc is a string will be encrypted,
//parameter encName is the algorithm name will be used.
//encName dafault to "MD5"
MessageDigest md=null;
String strDes=null;
byte[] bt=strSrc.getBytes();
try {
if (encName==null||encName.equals("")) {
encName="MD5";
}
md=MessageDigest.getInstance(encName);
md.update(bt);
strDes=bytes2Hex(md.digest()); //to HexString
}
catch (NoSuchAlgorithmException e) {
System.out.println("Invalid algorithm.");
return null;
}
return strDes;
}
public String bytes2Hex(byte[]bts) {
String des="";
String tmp=null;
for (int i=0;ibts.length;i++) {
tmp=(Integer.toHexString(bts[i] 0xFF));
if (tmp.length()==1) {
des+="0";
}
des+=tmp;
}
return des;
}
public static void main(String[]args) {
TestEncrypt te=new TestEncrypt();
String strSrc="可以加密汉字.Oh,and english";
System.out.println("Source String:"+strSrc);
System.out.println("Encrypted String:");
System.out.println("Use Def:"+te.Encrypt(strSrc,null));
System.out.println("Use MD5:"+te.Encrypt(strSrc,"MD5"));
System.out.println("Use SHA:"+te.Encrypt(strSrc,"SHA-1"));
System.out.println("Use SHA-256:"+te.Encrypt(strSrc,"SHA-256"));
}
}
使用下面的语句即可:
digestutils.shahex(要加密的字符);加密参数最好用字节数组,毕竟sha1算法是使用字节为单位进行运算的,字符串转字节还与字符编码有关。
SHA256类似于MD5都是单向加密的,如果要靠算法实现解密,目前理论上是不可能的。
package org.zhang.sha_256;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class StringEncrypt {
/**
* 对字符串加密,加密算法使用MD5,SHA-1,SHA-256,默认使用SHA-256
*
* @param strSrc
* 要加密的字符串
* @param encName
* 加密类型
* @return
*/
public static String Encrypt(String strSrc, String encName) {
MessageDigest md = null;
String strDes = null;
byte[] bt = strSrc.getBytes();
try {
if (encName == null || encName.equals("")) {
encName = "SHA-256";
}
md = MessageDigest.getInstance(encName);
md.update(bt);
strDes = bytes2Hex(md.digest()); // to HexString
} catch (NoSuchAlgorithmException e) {
return null;
}
return strDes;
}
public static String bytes2Hex(byte[] bts) {
String des = "";
String tmp = null;
for (int i = 0; i bts.length; i++) {
tmp = (Integer.toHexString(bts[i] 0xFF));
if (tmp.length() == 1) {
des += "0";
}
des += tmp;
}
return des;
}
public static void main(String args[]){
String s=StringEncrypt.Encrypt("qq群", "227297422");
System.out.println(s);
}
}
没有出现结果有不同啊,你检查一下几次执行的是不是同一段代码。
eclipse 点击按钮执行和右键是有区别的。