des 암호 화 복호화 코드
데이터 암호 화의 기본 적 인 과정 은 원래 명문 이 었 던 파일 이나 데 이 터 를 특정한 알고리즘 에 따라 처리 하여 읽 을 수 없 는 코드 로 만 드 는 것 이다. 흔히 '비밀문서' 라 고 부 르 는데 해당 하 는 키 를 입력 한 후에 만 원래 내용 을 표시 할 수 있 고 이런 길 을 통 해 데 이 터 를 불법 자 에 게 훔 치지 않 고 읽 히 지 않도록 보호 하 는 목적 을 달성 할 수 있다.이 과정의 역 과정 은 복호화 로 이 인 코딩 정 보 를 원래 데이터 로 바 꾸 는 과정 이다.
분류 (대칭, 비대 칭)
대칭 암호 화 는 암호 화 와 복호화 가 같은 키 를 사용 하 는 것 으로 흔히 'Session Key' 라 고 부 르 는 암호 화 기술 은 현재 광범 위 하 게 사용 되 고 있다. 예 를 들 어 미국 정부 가 사용 하 는 DES 암호 화 기준 은 전형 적 인 '대칭 식' 암호 화 법 으로 Session Key 의 길 이 는 56Bits 이다.비대 칭 암호 화 는 암호 화 와 복호화 에 사용 되 는 키 가 같은 키 가 아 닙 니 다. 보통 두 개의 키 가 있 습 니 다. '공개 키' 와 '비밀 키' 라 고 부 릅 니 다. 두 개 는 반드시 짝 을 지어 사용 해 야 합 니 다. 그렇지 않 으 면 암호 화 파일 을 열 수 없습니다.이곳 의 '공개 키' 는 대외 적 으로 발표 할 수 있 는 것 을 말 하 는데 '비밀 키' 는 할 수 없고 소지 자 한 사람 만 알 수 있다.대칭 적 인 암호 화 방법 이 네트워크 에서 암호 화 파일 을 전송 하 는 것 이 라면 키 를 상대방 에 게 알 리 기 어렵 고 어떤 방법 으로 든 들 을 수 있 기 때문이다.비대 칭 암호 화 방법 은 두 개의 키 가 있 고 그 중의 '공개 키' 는 공개 할 수 있 으 며 다른 사람 이 알 까 봐 두 렵 지 않 습 니 다. 받 는 사람 이 비밀 을 풀 때 자신의 비밀 키 를 사용 하면 키 의 전송 안전성 문 제 를 잘 피 할 수 있 습 니 다.
php des 암호 화 복호화 코드
key = $key;
if ($iv == 0) {
$this->iv = $key;
} else {
$this->iv = $iv; //mcrypt_create_iv ( mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM );
}
}
function encrypt($str) {
// ,
$size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$str = $this->pkcs5Pad($str, $size);
return strtoupper(bin2hex(mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv)));
}
function decrypt($str) {
//
$strBin = $this->hex2bin(strtolower($str));
$str = mcrypt_cbc(MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv);
$str = $this->pkcs5Unpad($str);
return $str;
}
function hex2bin($hexData) {
$binData = "";
for ($i = 0; $i < strlen($hexData); $i += 2) {
$binData .= chr(hexdec(substr($hexData, $i, 2)));
}
return $binData;
}
function pkcs5Pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5Unpad($text) {
$pad = ord($text{strlen($text) - 1});
if ($pad > strlen($text)) {
return false;
}
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {
return false;
}
return substr($text, 0, -1 * $pad);
}
}
// :
// $str = '12345678';
// $key = '1234abcd';
// $crypt = new DES($key);
// $mstr = $crypt->encrypt($str);
// $str = $crypt->decrypt($mstr);
// echo $str.' <=> '.$mstr
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.