Notice
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- soundpool
- mysql
- Android
- chart.js
- 안드로이드 gcm
- 폼메일
- WebView
- 우분투
- php 시큐어코딩
- FCM
- xe
- C# IO
- PHP
- 안드로이드 푸쉬
- UML
- android 효과음
- roundcube
- 안드로이드 푸시
- 안드로이드
- C#
- Mail Server
- php 취약점
- 자동 생성
- curl
- not working
- 자바스크립트
- 설치
- html5
- javascript
- dovecot
Archives
- Today
- Total
그러냐
[함수] 간단한 암호화/복호화 함수 본문
반응형
<?function EnCode($sText, $sCode) { $cntData = strlen($sText) - 1; $cntCode = strlen($sCode) - 1; $arrData = array(); $arrCode = array(); for($i = 0;$cntData >= $i; $i++) $arrData[$i] = $sText[$i]; for($i = 0;$cntCode >= $i; $i++) $arrCode[$i] = $sCode[$i]; $flag = 0; $strResult = ""; for($i = 0;$cntData >= $i; $i++) { $strResult = $strResult . (ord($arrData[$i]) ^ ord($arrCode[$flag])) . chr(8); if($flag == $cntCode) $flag = 0; else $flag++; } return base64_encode($strResult);}function DeCode($sText, $sCode) { $sText = base64_decode($sText); $arrData = split(chr(8), $sText); $arrCode = array(); $cntData = count($arrData) - 2; $cntCode = strlen($sCode) - 1; for($i = 0; $cntCode >= $i; $i++) $arrCode[$i] = $sCode[$i]; $flag = 0; $strResult = ""; for($i = 0;$cntData >= $i; $i++) { $strResult = $strResult . chr((int)($arrData[$i]) ^ ord($arrCode[$flag])); if($flag == $cntCode) $flag = 0; else $flag++; } return $strResult;}$testData = "안녕하세요";$testKey = "asdjhhjksa";$encodingData = EnCode($testData, $testKey);$decodingData = DeCode($encodingData, $testKey);echo "$encodingData ";echo "$decodingData ";$testData = "I am a Boy!! You are a Girl!!";$testKey = "aaaa";$encodingData = EnCode($testData, $testKey);$decodingData = DeCode($encodingData, $testKey);echo "$encodingData ";echo "$decodingData ";?>여기서 sCode 는 열쇠코드 입니다. 이걸모르면 암호를 풀수가 없죠sText의 바이트문자를 sCode의 바이트 문자로 XOR 한 것입니다. 예를 들어sText = "test"sCode = "key" 이면t XOR ke XOR es XOR yt XOR k이런식으로 암호화시킵니다.실제연산은 아스키코드값으로 합니다.실제 암호화된 데이터는 "3101031"이며""로 구분됩니다. (참고로 CHR(8) 입니다.)DeCode함수에서는 암호화된 데이터를키값을 이용해 풉니다.PHP에 암호화/복호화 함수가 있지만 다른언어와 함께 쓸수있겠죠~^^;예들들어 PHP <=> ASP 간에 데이터암호화해서 통신할수있겠죠..==========================================반응형
'php' 카테고리의 다른 글
| [PHP] JSON 방식으로 Ajax 구현하기 (0) | 2016.06.23 |
|---|---|
| html 테이블 자동줄바꿈 (0) | 2016.02.29 |
| [알고리즘] 암호화/복호화 함수(실전 응용 가능) (0) | 2016.02.22 |
| md5(), crypt(), password() 등의 문제점 및 로그인 암호화 보안 (0) | 2016.02.22 |
| 스팸글 자동등록 방지 오픈소스 - Securimage,captcha (0) | 2016.01.25 |