Java数据加密(MD5,sha1,sha256)
来源:互联网 发布:centos 输入法切换 编辑:程序博客网 时间:2024/06/10 01:05
数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
以下是对数据加密的几种方法 MD5,sha1,sha256;
import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Scanner; import org.apache.commons.codec.binary.Hex;/** * 常見的几种加密方式 */public class Encrypt {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String next = sc.next(); //123String md5str = string2MD5(next); //202CB962AC59075B964B07152D234B70String sha1str = string2Sha1(next); //40bd001563085fc35165329ea1ff5c5ecbdbbeefString sha256str = String2SHA256(next); //a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3String sha256Javastr = String2SHA256StrJava(next); //a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3System.out.println("next");System.out.println("md5str:"+md5str);System.out.println("sha1str:"+sha1str);System.out.println("sha256str:"+sha256str);System.out.println("sha256Javastr:"+sha256Javastr);} /** * MD5加密 生成32位md5码 */ public static String string2MD5(String inStr){ MessageDigest md5 = null; try{ md5 = MessageDigest.getInstance("MD5"); }catch (Exception e){ System.out.println(e.toString()); e.printStackTrace(); return ""; } char[] charArray = inStr.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().toUpperCase(); } /** * SHA1加密 * @param str * @return */ public static String string2Sha1(String str){ if(str==null||str.length()==0){ return null; } char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char buf[] = new char[j*2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { // TODO: handle exception return null; } } /** * 利用Apache的工具类实现SHA-256加密 * 所需jar包下載 http://pan.baidu.com/s/1nuKxYGh * @param str 加密后的报文 * @return */ public static String String2SHA256(String str){ MessageDigest messageDigest; String encdeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); byte[] hash = messageDigest.digest(str.getBytes("UTF-8")); encdeStr = Hex.encodeHexString(hash); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encdeStr; } //--------- /** * 利用java原生的摘要实现SHA256加密 * @param str 加密后的报文 * @return */ public static String String2SHA256StrJava(String str){ MessageDigest messageDigest; String encodeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes("UTF-8")); encodeStr = byte2Hex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encodeStr; } /** * 将byte转为16进制 * @param bytes * @return */ private static String byte2Hex(byte[] bytes){ StringBuffer stringBuffer = new StringBuffer(); String temp = null; for (int i=0;i<bytes.length;i++){ temp = Integer.toHexString(bytes[i] & 0xFF); if (temp.length()==1){ //1得到一位的进行补0操作 stringBuffer.append("0"); } stringBuffer.append(temp); } return stringBuffer.toString(); }}
阅读全文
0 0
- Java数据加密(MD5,sha1,sha256)
- Java/Android中SHA1和SHA256加密
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- SHA256加密,MD5加密
- 获取MD5、SHA1、SHA256码
- studio获得sha1 md5 sha256
- JAVA 如何使用 MD5 和SHA1进行数据加密
- 完整加密类(提供MD5,SHA1,SHA256,SHA512,DES加密和解密)
- 数据安全,MD5、SHA1加密字符串
- Objective-C的字符串MD5、SHA1、SHA256、AES加密的实现
- 3DES、AES、RC6、TEA、RSA、MD5、SHA1、SHA256加密介绍及源码
- 文件校验MD5、SHA1、CRC32、sha256、cksum
- Android 获取证书指纹MD5,SHA1,SHA256
- C语言实现MD5/SHA1/SHA256/SHA512
- java 加密解密算法MD5/SHA1,DSA
- java实现MD5和sha1加密
- java 加密解密算法MD5/SHA1,DSA
- java实现md5和sha1加密类
- 阿里云Centos下安装JDK+Tomcat+Mysql步骤详解
- mysql 字段类型保存小数和整数
- jvm源码阅读笔记[3]:从内存分配到触发GC的细节
- bzoj 2783: [JLOI2012]树
- hibernate泛型Dao
- Java数据加密(MD5,sha1,sha256)
- 机房个人重构——总结思考
- 三、动态SQL语句
- CodeForces
- rsync配置文件详解
- 发布npm包
- 四、MyBatis主配置文件
- C和指针第十章笔记 结构体与联合
- HTTP请求乱码问题