Este artículo describe el algoritmo de cifrado AES implementado por Java. Compártelo para su referencia, como sigue:
import javax.crrypto.cipher; import javax.crrypto.spec.ivparameterspec; import javax.crypto.spec.secretkeyspec; import android.util.base64;/** * @author vipin.cb, [email protected] <Br> * SEP 27, 2013, 5:18:18:18:18:18:18:18 <br> * paquete:- <b> com.veebow.util </b> <br> * Proyecto:- <b> Veebow </b> * * <p> */public class aescrypt {private final de cifrado final; Key privada final de secretkeyspec; Especificaciones privadas de algorithmparameterspec; public static final String Seed_16_character = "U1MJU1M0FDOUZ.QZ"; public aescrypt () lanza la excepción {// hash contraseña con SHA-256 y recorta la salida a 128 bits para la clave MessageGest Digest = MessageDigest.getInstance ("SHA-256"); Digest.Update (Seed_16_Character.getBytes ("UTF-8")); byte [] keyBytes = nuevo byte [32]; System.ArrayCopy (digest.digest (), 0, keyBytes, 0, keyBytes.length); cifrado = cipher.getInstance ("aes/cbc/pkcs7padding"); Key = new SecretKeSpec (KeyBytes, "AES"); spec = getiv (); } public algorithmparameterspec getiv () {byte [] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; IVPARAMETERSPEC IVPARAMETERSPEC; ivParameterspec = new IVParamETERSPEC (IV); return ivParameterspec; } public String CiCrypt (String Entenerxt) lanza la excepción {cipher.init (cipher.enCrypt_mode, key, spec); byte [] cifrado = cipher.dofinal (asignext.getBytes ("utf-8")); String CiCryPedText = new String (base64.encode (cifrado, base64.default), "utf-8"); return cifrypTedText; } public String Decrypt (String CrypTedText) lanza la excepción {cipher.init (cipher.decrypt_mode, key, spec); byte [] bytes = base64.decode (crypteDtext, base64.default); byte [] descifrado = cipher.dofinal (bytes); Cadena DecryptedText = new String (descifrado, "UTF-8"); devolver DecryptedText; }}
PD: Los amigos interesados en el cifrado y el descifrado también pueden referirse a las herramientas en línea de este sitio:
Detección en línea de seguridad de la contraseña:
http://tools.vevb.com/password/my_password_safe
Generador de contraseñas de alta resistencia:
http://tools.vevb.com/password/createstrontepassword
Herramienta de cifrado en línea MD5:
http://tools.vevb.com/password/createmd5password
Herramientas de cifrado/descifrado de URL de Thunder, Express y Tornado:
http://tools.vevb.com/password/urlrethunder
Herramienta de cifrado de algoritmo de hash/hash en línea:
http://tools.vevb.com/password/hash_encrypt
Espero que este artículo sea útil para la programación Java de todos.