En nuestra programación, a menudo tenemos que cifrar un contenido especial. ¡Hoy he resumido algunos métodos de cifrado simples y los comparto con usted!
¿Cómo implementar cifrado simple y descifrado de cadenas con Java? Para garantizar la seguridad de la información del usuario, cuando el sistema guarda la información del usuario, es necesario cifrar y guardar su contraseña en la base de datos.
Cuando necesite usar una contraseña, saque los datos y descifrarlo.
Evite guardar las contraseñas de texto sin formato.
Plan 1:
paquete com.tnt.util; import java.security.MessageGest; clase pública StringUtil {String estático final privado [] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "d", "e", "f"}; / *** Convertir la matriz de byte en cadena hex** @param b* byte array* @return hex string*/ public static string bytearrayToHexString (byte [] b) {stringBuffer resultadosb = new StringBuffer (); para (int i = 0; i <b.length; i ++) {resultadosb.append (bytetohexstring (b [i])); } return resultadosb.ToString (); } cadena estática privada bytetoHexString (byte b) {int n = b; if (n <0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexdigits [d1] + hexdigits [d2]; } public static string md5Endode (origen de cadena) {String resultados resultados = null; intente {resultados de resultados = new String (origen); MessageDigest MD = MessageGest.getInstance ("MD5"); ResultString = byteArrayToHexString (md.digest (resultados de resultados .getBytes ())); } capt (excepción ex) {} return resultados ttring; } public static void main (string [] args) {system.err.println (md5encode ("123456")); }}Plan 2
package com.shangyu.core.utils;public class MD5 {public static String getMD5(byte[] source) {String s = null;char hexDigits[] = { // The characters used to convert bytes into hexadecimal representation '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; try {java.security.messageDigest md = java.security.messageGest.getInstance ("md5"); md.update (fuente); byte tmp [] = md.digest (); // El resultado del cálculo de MD5 es un entero de 128 bits de largo, // está representado por bytes, que es 16 bytes. char str [] = nuevo char [16 * 2]; // Si cada byte se representa en hexadecimal, se usan dos caracteres, // por lo tanto, se necesitan 32 caracteres para representar hexadecimal int k = 0; // representa la posición del carácter correspondiente en el resultado de conversión para (int i = 0; i <16; i ++) {// comenzando desde el primer byte, la conversión de cada byte de MD5 // en caracteres hexadecimales byte byte0 = tmp [i]; // tomar el byte i-th str [k ++] = hexdigits [byte0 >>> 4 & 0xf]; // Tome la conversión numérica de los 4 bits superiores en byte, // >>> // Para el cambio lógico a la derecha, cambie los bits del símbolo juntos Str [k ++] = hexDigits [byte0 & 0xf]; // tome la conversión numérica de los 4 bits inferiores en byte} s = nueva cadena (str); // Convierta el resultado después de la conversión a una cadena} Catch (Exception e) {E.PrintStackTrace ();} return s;} public static string getMd5 (string str) {return getMd5 (str.getBytes ());} public static void main (String [] args} {system.println (md5.getmd5 ("123456");Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!