Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Ajax
- UTF-8
- file-upload
- variables
- Linux
- php
- Apache
- date
- HTML
- 웹하드추천
- 무료다운로드쿠폰
- MySQL
- JavaScript
- Laravel
- 전략
- post
- 웹하드순위
- Regex
- JSON
- jquery
- OOP
- function
- 경영
- Session
- string
- composer-php
- Forms
- curl
- Arrays
Archives
- Today
- Total
개발! 딱 깔끔하고 센스있게!
PHP 는 TripleDes, PKCS7 과 ECBs 암호 화 / 복호화 를 사용 합 니 다. 본문
내 암호 함수 가 정상적으로 작 동 하지만 복호화 함수 가 올 바른 출력 을 내 도록 하 는 방법 을 모 르 겠 습 니 다.
다음은 나의 암호 함수:
function Encrypt($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); //Pad for PKCS7 $blockSize = mcrypt_get_block_size('tripledes', 'ecb'); $len = strlen($data); $pad = $blockSize - ($len % $blockSize); $data .= str_repeat(chr($pad), $pad); //Encrypt data $encData = mcrypt_encrypt('tripledes', $key, $data, 'ecb'); return base64_encode($encData); }
다음은 나의 복호화 함수:
function Decrypt($data, $secret) { $text = base64_decode($data); $data = mcrypt_decrypt('tripledes', $secret, $text, 'ecb'); $block = mcrypt_get_block_size('tripledes', 'ecb'); $pad = ord($data[($len = strlen($data)) - 1]); return substr($data, 0, strlen($data) - $pad); }
현재 테스트 키 를 사용 하고 있 으 며 암호 화 를 시도 하고 있 습 니 다.
1234567.제 가 찾 고 있 는 암호 화 에서 Base64 로 출력 되 었 지만 복호화 하 러 갔 을 때 아무것도 되 돌아 오지 않 았 습 니 다 (공백 구역).
나 는 암호 화 / 복호화 에 그다지 정통 하지 않 기 때문에 당신 의 도움 에 매우 감사 드 립 니 다!!
대답 하 다.
제 질문 을 봐 주 셔 서 감사합니다.
나 는 내 가 이미 해결 했다 고 생각한다.
이것 은 나의 모든 해결 방안 이다.
비슷 한 문 제 를 가 진 다른 사람들 에 게 도움 을 주 었 으 면 합 니 다.
function Encrypt($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); //Pad for PKCS7 $blockSize = mcrypt_get_block_size('tripledes', 'ecb'); $len = strlen($data); $pad = $blockSize - ($len % $blockSize); $data .= str_repeat(chr($pad), $pad); //Encrypt data $encData = mcrypt_encrypt('tripledes', $key, $data, 'ecb'); return base64_encode($encData); }
이것 은 새로운 복호화 함수 입 니 다.
function Decrypt($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); $data = base64_decode($data); $data = mcrypt_decrypt('tripledes', $key, $data, 'ecb'); $block = mcrypt_get_block_size('tripledes', 'ecb'); $len = strlen($data); $pad = ord($data[$len-1]); return substr($data, 0, strlen($data) - $pad); }
my crypt decrypt 함수 가 실 행 될 때 까지 같은 코드 를 추가 해서 올 바른 형식 으로 키 를 만들어 야 합 니 다.
'개발 스크랩 메모 > PHP' 카테고리의 다른 글
PHP 컬 pt 500 오류 (0) | 2020.11.27 |
---|---|
php 에 서 는 curl 을 사용 하여 리 셋 을 수행 합 니 다. (0) | 2020.11.27 |
PHP 획득 디 렉 터 리 생 성 시간 (0) | 2020.11.27 |
어떻게 php 세 션 데 이 터 를 정확하게 제거 합 니까? (0) | 2020.11.27 |
PHP 유닛: 모든 테스트 에서 한 번 호출 할 수 있 는 함 수 를 어떻게 만 듭 니까? (0) | 2020.11.27 |
Comments