Maison >Java >javaDidacticiel >Analyse d'exemples de chiffrement et de décryptage de PHP et Java des

Analyse d'exemples de chiffrement et de décryptage de PHP et Java des

WBOY
WBOYavant
2023-04-29 09:40:201386parcourir

Le cryptage des est une méthode de cryptage largement utilisée sur Internet dans le cryptage symétrique. PHP prend en charge le cryptage des via la bibliothèque d'extensions mcrypt. Pour utiliser le cryptage des en Php, vous devez d'abord installer la bibliothèque d'extensions mcrypt

Ce qui suit est le cryptage. et exemple de décryptage

Copiez le code comme suit :

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);/ /Key
$text = "Rendez-vous à 11 heures derrière le monument.";//Contenu qui doit être chiffré
echo ($text)
$crypttext =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $. key, $text , MCRYPT_MODE_ECB, $iv));
echo $crypttext .//Contenu crypté
echo mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);//Contenu décrypté

MCRYPT_RIJNDAEL_128, MCRYPT_RIJNDAEL_192 et MCRYPT_RIJNDAEL_256 sont généralement utilisés dans l'algorithme de cryptage AES. Les 128, 192 et 256 suivants représentent le nombre de bits de la clé secrète (c'est-à-dire la clé cryptée). Par exemple, MCRYPT_RIJNDAEL_128 est utilisé. Ensuite, lorsque vous utilisez cet algorithme pour chiffrer, la longueur de la clé est de 128 bits. Par exemple, $key = 'fjjda0&9^$$#+*%$fada' contient 20 caractères. Ensuite, seuls les 16 premiers caractères sont utilisés pour le chiffrement ( 16. *8=128), sera utilisé en PHP inférieur à 128 bits

importer javax.crypto.Cipher ; 
importer javax.crypto.spec.SecretKeySpec ; 
  
importer org.apache.commons.codec.binary.Base64 ; 
  
public class Security { 
    public static String encrypt (Entrée de chaîne, clé de chaîne){ 
        byte[] crypted = null; 
        essayez{ 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES"); 
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
            cipher.init(Cipher.ENCRYPT_MODE, skey); 
            crypted = cipher.doFinal(input.getBytes()); 
        }catch(Exception e){ 
        System.out.println(e.toString()); 
    } 
    return new String(Base64.encodeBase64(crypted)); 

  
    décryptage de chaîne statique publique (entrée de chaîne, clé de chaîne){ 
        byte[] sortie = null ; 
        essayez{ 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES"); 
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
            cipher.init(Cipher.DECRYPT_MODE, skey); 
            output = cipher.doFinal(Base64.decodeBase64(input)); 
            }catch(Exception e){ 
            System.out.println(e.toString()); 
        } 
        return new String(output); 
    } 
  
    public static void main(String[] args) { 
        String key = "1234567891234567"; 
        String data = "exemple" ; 
         
        System.out.println(Security.encrypt(data, key)); 
         
        System.out.println(Security.decrypt(Security.encrypt(data, key), key)); 
         
             
    }    

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer