프로그래밍에서는 종종 특별한 콘텐츠를 암호화해야합니다. 오늘 나는 몇 가지 간단한 암호화 방법을 요약하고 당신과 공유했습니다!
Java와 함께 문자열의 간단한 암호화 및 암호 해독을 구현하는 방법은 무엇입니까? 사용자 정보의 보안을 보장하기 위해 시스템이 사용자 정보를 저장할 때 비밀번호를 데이터베이스에 암호화하고 저장해야합니다.
비밀번호를 사용해야 할 때 데이터를 꺼내서 해독하십시오.
일반 텍스트 비밀번호를 저장하지 마십시오.
Plan 1:
패키지 com.tnt.util; java.security.messagegegest; 공개 클래스 stringUtil {private final static string [] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "c", "d", "e", "f"}; / *** 바이트 배열 변환 hex 문자열** @param b* 바이트 배열* @return hex String*/ public static string bytearraytoHexString (byte [] b) {StringBuffer resultsb = new StringBuffer (); for (int i = 0; i <b.length; i ++) {resultsb.append (bytetohexstring (b [i])); } return resultsb.toString (); } private static string bytetohexstring (바이트 b) {int n = b; if (n <0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; 반환 육각형 [d1] + hexDigits [d2]; } public static String md5encode (String origin) {String resulttring = null; try {resultstring = new String (Origin); MessageDigest MD = MessageDigest.getInstance ( "MD5"); resultString = bytearraytoHexString (md.Digest (resultstring .getBytes ())); } catch (예외) {} return resulttring; } public static void main (String [] args) {System.err.println (md5encode ( "123456")); }}계획 2
package com.shangyu.core.utils; public class md5 {public static string getmd5 (byte [] source) {string s = null; char hexDigits [] = {// hexadecimal 표현 '0', '1', '2', '3', '4', '', '', '', '', '', '', '', '9', '', '', '', '', '', '', '', '', '', '', '', '9' 'b', 'c', 'd', 'e', 'f'}; try {java.security.messagedigest md = java.security.messagedigest.getinstance ( "md5"); md.update (소스); byte tmp [] = md.digest (); // MD5의 계산 결과는 128 비트 긴 정수이며 // 16 바이트 인 바이트로 표시됩니다. char str [] = 새로운 char [16 * 2]; // 각 바이트가 16 진수로 표시되면 두 문자가 사용됩니다. 따라서 // 16 진 int k = 0을 나타내는 데 32자가 필요합니다. // (int i = 0; i <16; i ++)에 대한 변환 결과에서 해당 문자 위치를 나타냅니다. {// 첫 번째 바이트에서 시작하여 md5의 각 바이트를 16 진 문자 바이트 바이트 바이 테트 0 = tmp [i]로 변환합니다. // I-TH BYTE STR [k ++] = hexDigits [byte0 >>> 4 & 0xf]; // BYTE에서 상단 4 비트의 수치 적 변환을 취하십시오. // >>> // 논리적 시프트를 오른쪽으로 오른쪽으로, 기호 비트를 바로 함께 바꾸십시오. // BYTE에서 4 비트의 더 낮은 4 비트의 숫자 변환} s = new String (str); // 문자열로 변환 후 결과를 문자열로 변환} catch (예외 e) {e.printstacktrace ();} return s;} public static string getmd5 (string str) {return getMd5 (str.getBytes ());} public static void main (string [] args) {system.out.println (md5.getmd5 ( "));읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!