웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
지정한만큼 암호화/해독 하기
2003.09.10 21:02
http://zective.com/ead.php제목 그대로 지정한 루프만큼 암호화/해독 하기 소스입니다^_^;;;
심심해서 만들어 봤어요;ㅂ;
P.S '안녕하세요~!' 문장 500번 암호화 했다가 컴 심하게 버벅거렸음...;
-------------------------------------------------------------------------------------------------------------------------------
<?php
// 암호화 함수
function encode($word, $loof) {
// 루프 값이 올바르지 않을 경우 강제 지정
if($loof <= || !$loof) $loof = "1";
// 루프 값만큼 암호화 작업 반복
for($i = ; $i <= $loof; $i++) {
$word = base64_encode($word);
}
// 최종 데이터 리턴
return $result = $word;
}
// 해독 함수
function decode($word, $loof) {
// 루프 값이 올바르지 않을 경우 강제 지정
if($loof <= || !$loof) $loof = "1";
// 루프 값만큼 해독 작업 반복
for($i = ; $i <= $loof; $i++) {
$word = base64_decode($word);
}
// 최종 데이터 리턴
return $result = $word;
}
// 암호화할 문장
$sentence = "Hello World~!";
// 암호화 (1번)
$encode = encode($sentence, "1");
// 암호화 된 데이터를 해독 (1번)
$decode = decode($encode, "1");
?>
심심해서 만들어 봤어요;ㅂ;
P.S '안녕하세요~!' 문장 500번 암호화 했다가 컴 심하게 버벅거렸음...;
-------------------------------------------------------------------------------------------------------------------------------
<?php
// 암호화 함수
function encode($word, $loof) {
// 루프 값이 올바르지 않을 경우 강제 지정
if($loof <= || !$loof) $loof = "1";
// 루프 값만큼 암호화 작업 반복
for($i = ; $i <= $loof; $i++) {
$word = base64_encode($word);
}
// 최종 데이터 리턴
return $result = $word;
}
// 해독 함수
function decode($word, $loof) {
// 루프 값이 올바르지 않을 경우 강제 지정
if($loof <= || !$loof) $loof = "1";
// 루프 값만큼 해독 작업 반복
for($i = ; $i <= $loof; $i++) {
$word = base64_decode($word);
}
// 최종 데이터 리턴
return $result = $word;
}
// 암호화할 문장
$sentence = "Hello World~!";
// 암호화 (1번)
$encode = encode($sentence, "1");
// 암호화 된 데이터를 해독 (1번)
$decode = decode($encode, "1");
?>
댓글 24
-
TheMics
2003.09.10 21:07
칼라풀~ >_< -
뒹굴리스트
2003.09.10 21:08
TheMics // 보기 편하지!? -_-; phps 소스를 뽑아냈음> _< -
TheMics
2003.09.10 21:09
저 색은 자세히 보니 .phps 색;ㅂ;! -
TheMics
2003.09.10 21:09
이런...30초나 늦다니[..] -
뒹굴리스트
2003.09.10 21:09
TheMics // 어멋;ㅂ; 들켜버렸다!? -
뒹굴리스트
2003.09.10 21:10
TheMics // 후훗...아직 나에게 덤비기엔 30초는 일러. -_-;;; -
TheMics
2003.09.10 21:18
뒹굴//털썩...그러나 나에겐 비장의 무기! "HTML형태로 문법강조 출력"이 있다!! -
오우|한심
2003.09.10 21:22
나에게 아무런 무기가 없다~ [!] -
플로렐라
2003.09.10 21:46
HTML/php 컬러풀 출력기를 만들어 볼까;;;
(무리다...) -
chadr
2003.09.11 17:38
흠.. 딴지는 아니지만..;
base64_decode 이 함수는 인코딩 방식이 MINE base64방식입니다.
( 알고 계실지도;; )
이 방식은 이메일을 보낼때 바이너리 파일을 첨부하기 위해 바이너리를 텍스트 형식으로 인코딩하는 방식입니다. ( 참고로 이메일에 바이너리 파일을 첨부한다고 해서 바이너리로 나가는것이 아니라 텍스트로 인코딩이 되어서 나갑니다. 이메일 프로토콜은 텍스트 기반 프로토콜이라서 바이너리를 그대로 보내면 깨집니다. 따라서 base64 방식과 같은 인코딩 알고리즘을 써서 텍스트로 만들고 받는 쪽에서는 그걸 다시 디코딩을 하지요.. 따라서 실제로 이멜로 나가는 바이너리 파일의 크기는 실제 크기보다 크게 됩니다. 이런 텍스트 인코딩 알고리즘은 이것 말고도 여러가지가 있습니다. ) 따라서 이건 암호화를... 한다는것 보다는 단지 일정한 알고리즘을 써서 문자열을 재 조립한다고 할까요? 여튼 그런 방식입니다. 따라서 이런 방식의 디코딩 알고리즘은 널리고 널려서 사람이 손으로도 디코딩을 할수 있습니다.
패스워드 같은것을 암호화를 하신다면 crypt 함수를 쓰시는것이 가장 안정적입니다. ( 단, 이 암호화 알고리즘은 역으로 디코딩하는 알고리즘이 없는 알고리즘이라서 한번 암호화된 암호는 역으로 암호화를 풀수 없습니다. ) -
뒹굴리스트
2003.09.11 18:03
chadr // 조언 감사합니다;ㅅ;)>예전에 비혼님이 만드신 암호화 알고리즘이 어디에 있던데...-_-; -
조광민
2003.09.11 18:58
쪽지 보냈습니다 쪽지 봐주세요~ -
chadr
2003.09.11 17:49
엇.. 오타났네요..=_= MIME입니다.
그리고 아래는 참고 사이트..
http://physics.kyunghee.ac.kr/~comphys/lecture_html/encoding.htm
ps. 참고로 저는 C++ 유저입니다.; -
토끼군
2003.09.11 22:12
chadr// MD5 Digest도 괜찮지 않을까요 ;ㅁ; (음. 뚫렸나?;; 근데 이것도 hash 알고리즘인데... 뭐;;) -
chadr
2003.09.11 22:58
토끼군// 음.. 아래 문서를 보니까 그렇게 썩 좋은 암호화 방법은 아니더군요.. 안써봐서 잘은 모르겠지만 어느때나 일정한 문자열을 넣으면 똑같은 해쉬가 나오는것 같군요.( 당연한가? )
이런것 가지고는 암호화를 한다는것은 참으로 위험합니다. 역으로 디코딩이 가능하기 때문이죠.
암호화 알고리즘을 구현하실수 있으시다면 상용 암호화 모듈과 같이 일정한 키값을 가지고 암호화를 하거나.. 아니면 위에서 제가 말씀드린 crypt 암호화 알고리즘을 써서 하시는 편이 좋습니다.
암호화라는것은 그냥 무작정 알아먹지 못하는 패턴의 데이터로 만드는것이 아니라, 그걸 디코딩하는 것을 100%은 아니더라도 99.9%를 못하게 하는 것이 제대로된 암호화라고 할수 있겠죠.;)
더욱이 php와 같이 소스 코드를 고스란히 볼수 있는 언어나.. 공개된 암호화 알고리즘 중에서 디코딩이 가능한 알고리즘은 실질적으로 쓸모; 가 없다고 보셔도 될것이라고 생각합니다.
encrypt암호화 알고리즘은 공개는 되어있지만 ( 공개된것 맞나..-_-a ) 알고리즘 자체가 원천적으로 디코딩을 못하게 설계된 알고리즘이라 안전하다고 볼수 있습니다.
http://www.faqs.org/rfcs/rfc1321.html -
chadr
2003.09.11 23:01
아.. 그러고보니까 md5알고리즘은 랜덤 문자열을 생성하는데 쓰면 아주 유용하겠군요.!
ex) md5(time()) -
Kesarr
2003.09.12 01:14
Message Digest (MD) 는 암호화 알고리즘의 일종입니다.
주로 데이터의 무결성을 보증하는 역할을 하는 암호화 알고리즘으로 그 자체가 데이터 전달의 목적은 될 수 없습니다.
원문이 유출되는 것이 큰 문제가 되지는 않으나 중간에 위조될 가능성이 있을 경우 원문 전체를 강력하게 암호화하는 것은 여러모로 거추장 스럽기 때문에, 원문의 모든 데이터를 근거로 수바이트밖에 안되는 짧은 문자열로 반환해주는 것으로서, 일종의 손실 압축 방식이라고도 볼 수 있습니다.
원문과 그 문서의 MD 키가 함께 주어졌을때 수신자가 원문을 다시 MD 로 암호화 해보고 두 MD 키가 같은지를 보는거죠..
물론 MD 키는 별도로 암호화를 해서 보내어 상대방이 복호화 해낼수 있게 해야 되겠죠.
따라서 MD 키로는 원문을 복구해내는게 절대 불가능하여 MD 키는 원문을 찾아내는 단서가 될 수 없으며, 일일이 원문을 대입해보는 Brute Force Attack 방식 외에는 복호화 방법이 없습니다.
그러나 일반적으로 MD 는 큰 문서나 파일을 손실 압축시킨 것인데다가 MD 키만 보고는 원문의 길이를 전혀 추정할 수 없으므로, Brute Force Attack 을 사용하는건 생각하기도 어려우며, 한마디로 "원문이 없을 경우" 송신자와 수신자를 포함해 누구라도 복호화가 원천적으로 불가능한 방식입니다. -
Kesarr
2003.09.12 01:21
RFC 1244 문서에서 발췌했습니다. 유닉스 시스템의 crypt 알고리즘은 제2차 세계 대전때 고안된 에니그마의 암호화 방식을 기반으로 하기 때문에 불안하다는 군요. 그리고 그 명령어로 파일들을 암호화하면 복호화되기 쉽다고 합니다.
Crypt
Similar to the DES command, the UNIX "crypt" command allows
a user to encrypt data. Unfortunately, the algorithm used
by "crypt" is very insecure (based on the World War II
"Enigma" device), and files encrypted with this command can
be decrypted easily in a matter of a few hours. Generally,
use of the "crypt" command should be avoided for any but the
most trivial encryption tasks. -
chadr
2003.09.12 13:02
Kesarr // Message Digest 방식의 알고리즘 또한 one way 방식이군요. 확실히 알아보지 않고 답변한 저의 불찰입니다. __)
아래는 관련 사이트와 설명..
A Message Digest is a digitally created hash (fingerprint) created from a plaintext block. All the information of the message is used to construct the Message Digest hash, but the message cannot be recovered from the hash. For this reason, Message Digests are also known as one way hash functions.
http://www.google.co.kr/search?q=cache:JTG02OZzjt4J:www.jguru.com/faq/view.jsp%3FEID%3D4315+message+digest&hl=ko&ie=UTF-8
그런데 crypt 알고리즘은 one way 방식으로 알고 있는데 복호화라뇨?
RFC문서에 나와있으니 믿어야하긴 하겠는데; 인터넷의 다른 문서를 찾아봐도 복호화는
불가능하다고 나와있는데.=_= 아.. 혼란; -
조정도
2003.09.12 20:51
이소스 조금 수정해서 써봤는데요;;
왜 그런지 모르지만 $decode를 $encode 보다 위쪽으로 놔야 해석되더군요;;
무슨 조화인지;; -
必勝
2003.09.13 10:12
암호화 -> 해독
할 수는 없는지... - -; -
토끼군
2003.10.01 10:33
조정도// 그럴 리가요;; 저 소스 그대로라면 문제 없습니다.
필승// decode() 함수 있습니다. (털썩) -
카멜롯™
2003.10.19 05:12
뒹굴리스트님 서명 몰래 쓰는중...-_-;; -
유길상
2004.06.10 09:39
문자를 암호화 한다는건 알겠는데 초보인 저로서는 어떻게 사용하는지 모르겠습니다.
부가 설명좀 해주시면 좋겠습니다. 아무나요...
제목 | 글쓴이 | 날짜 |
---|---|---|
동적으로 Extensions(library) 로딩하기 | impre | 2003.09.20 |
include 할시에 주의사항..(경로설정관련) [10] | 피너츠 | 2003.09.14 |
지정한만큼 암호화/해독 하기 [24] | 뒹굴리스트 | 2003.09.10 |
모든파일을 리스트로 만들기; [10] | 플로렐라 | 2003.09.10 |
군대간 친구 남은날짜 구하기 2(복무기간 단축에 따른 수정) [8] | 신민경 | 2003.09.02 |
자료실에 쓸만한 자료용량 환산 [7] | 한승진 | 2003.09.01 |
php 랜덤 이미지 디렉토리 검색으로 편하게.. [3] | 꺼노 | 2003.08.28 |
웹디자이너와 프로그래머가 사이 좋게 코딩하는 방법 [50] | 마이템플릿 | 2003.08.13 |
개판 오분전 정규식(1) | 미친개 | 2003.08.07 |
개판 오분전 정규식(2) [5] | 미친개 | 2003.08.07 |
개판 오분전 정규식(3) [2] | 미친개 | 2003.08.07 |
개판 오분전 정규식(4) | 미친개 | 2003.08.07 |
$i++ !== $i += 1 [14] | 플로렐라 | 2003.08.04 |
체널을 응용해서 tmain.php?tdb=test&db=src 식으로 쓰기 [12] | 9000㎒ | 2003.08.01 |
제로보드 + MSN 메신저 (작성글에 리플이나 코멘트가 달리면 MSN으로 알려준다?) [18] | HungryMania | 2003.08.01 |
스킨 시스템 사용하기 [2] | 김규백 | 2003.07.25 |
다른 사이트에 있는 파일 읽어오기 [50] | 김규백 | 2003.07.25 |
초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스 [6] | 거금도 | 2003.07.24 |
'와 "의 속도 차이?! [6] | holies | 2003.07.12 |
Thumbnail 생성하기 - 수정^^; [9] | holies | 2003.07.11 |