>Java >java지도 시간 >PHP 및 Java des의 암호화 및 복호화 예제 분석

PHP 및 Java des의 암호화 및 복호화 예제 분석

WBOY
WBOY앞으로
2023-04-29 09:40:201400검색

des 암호화는 대칭 암호화로 인터넷에서 널리 사용되는 암호화 방법입니다. PHP는 mcrypt 확장 라이브러리를 통해 des 암호화를 지원합니다. Php에서 des 암호화를 사용하려면 먼저 mcrypt 확장 라이브러리를 설치해야 합니다

다음은 암호화입니다. 및 복호화 예시

다음과 같이 코드를 복사하세요.

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "매우 비밀스러운 키입니다.";/ /Key
$text = "기념비 뒤에서 11시에 만나요.";//암호화가 필요한 내용
echo ($text) . "n"
$crypttext =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $ key, $text , MCRYPT_MODE_ECB, $iv));
echo $crypttext . "n";//암호화된 콘텐츠
echo mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);//해독된 콘텐츠

MCRYPT_RIJNDAEL_128, MCRYPT_RIJNDAEL_192, MCRYPT_RIJNDAEL_256은 일반적으로 AES 암호화 알고리즘에 사용됩니다. 다음 128, 192, 256은 비밀 키(즉, 암호화된 키)의 비트 수를 나타냅니다. 그러면 이 알고리즘을 사용하여 암호화할 때 비밀 키의 길이는 128비트입니다. 예를 들어 $key = 'fjjda0&9^$$#+*%$fada'는 20자만 사용됩니다. 실제 암호화(16*8=128)는 128비트 미만의 PHP에서 사용됩니다.

javax.crypto.Cipher 가져오기; 
javax.crypto.spec.SecretKeySpec 가져오기; 
  
import org.apache.commons.codec.binary.Base64; 
  
public class Security { 
    public static String encrypt(문자열 입력, 문자열 키){ 
        byte[] crypted = null; 
        시도해 보세요{ 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES"); 
            암호 암호 = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
            cipher.init(Cipher.ENCRYPT_MODE, skey); 
            crypted = cipher.doFinal(input.getBytes()); 
        }catch(예외 e){ 
        System.out.println(e.toString()); 
    } 
    return new String(Base64.encodeBase64(crypted)); 

  
    public static String decrypt(문자열 입력, 문자열 키){ 
        byte[] 출력 = null; 
        시도해 보세요{ 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES"); 
            암호 암호 = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
            cipher.init(Cipher.DECRYPT_MODE, skey); 
            출력 = cipher.doFinal(Base64.decodeBase64(input)); 
            }catch(예외 e){ 
            System.out.println(e.toString()); 
        } 
        새 문자열(출력) 반환; 
    } 
  
    public static void main(String[] args) { 
        String key = "1234567891234567"; 
        문자열 데이터 = "예"; 
         
        System.out.println(Security.encrypt(data, key)); 
        
        System.out.println(Security.decrypt(Security.encrypt(data, key), key)); 
        
             
    }    

위 내용은 PHP 및 Java des의 암호화 및 복호화 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제