최근 레몬펜 쪽지

최근 레몬펜 쪽지



XOR 암호화 뚝딱 만들기

XOR 암호화를 쓰는 이유!!

가장 간단하게 만들 수 있고, CPU스트레스도 적기 때문이랄까...
거기다가... XOR 암호화가... 원본값과 암호화된 값의 일치성 찾기가 꾀나 까다로운탓에... ㄲㄲ;

Function Encryption(ByRef XDATA() As Byte, ByVal SEED As Byte) As Boolean
    On Error Resume Next
    
    Dim i As UInt64

    For i = 0 To UBound(XDATA, 1) Step 1
        XDATA(i) = (XDATA(i) Xor SEED) And 255
    Next i

    Return True
End Function

C언어에서는 ^= 라는 비트연산자를 통해 XOR(베타적 논리합) 을 계산할 수 있다는...
SEED 값은 랜덤의 0 ~ 255 값을 주면 된다.
소켓통신에서 쓰려고 짜본건데... 매 패킷을 생성해낼때마다 이 함수로 암호화 해주면 좋을듯...
클라이언트에서 서버로의 송신은 암호화를 해주고... 서버에서 클라이언트로의 송신은...
주로 서버는 클라이언트 요청에 응답하는 내용이 대부분일거고, 서버 특성상 다수의 클라이언트와 연결되어 있는 탓에
쉽게 스트레스를 받게될테니... 이 경우에는 노멀패킷을 그대로 송신하는 편이 좋을듯 싶다...
하지만, 서버에서 수신한 데이터의 복호화 탓에 이 모듈은 서버와 클라이언트 둘 다 가지고 있어야한다는. ㄲㄲ;;


사용법은!!

Randomize '일단 난수생성기를 초기화하고

SEED = (Rnd * 256) And 255 '0~255의 랜덤한 값을 생성한다.
SDATA() = StrConv("abcdef", vbFromUnicode) 'SDATA 라는 바이트배열에 원본 데이터를 집어넣고 (예제는 6바이트의 abcdef 이다)
ReDim XDATA(UBound(SDATA(), 1)) '레퍼런드로 반환될 값을 받을 바이트배열변수 역시 같은 길이로 설정한다.

그리고나서 XDATA 라는 바이트배열변수를 보면 XOR 연산된 값이 들어간다는...
복호화는 암호화할때 썻던 랜덤SEED 값과 위에 XOR연산된 값을 넣어주면 된다는...

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://aurelie.egloos.com/tb/2401394 [도움말]

덧글

덧글 입력 영역

구글 광고



D-Day

스케치판 미니

W 위젯

米 소녀

링크

Sound-Horizon
사운드호라이즌 공식 홈페이지
Aramari's web site
아라마리씨의 개인사이트
Maple Leaf
시모츠키하루카씨의 개인사이트
전민희공식홈페이지
전민희님의 홈페이지
Atelier Tiv egloos
Ti:v(이주영님)의 블로그
소고기친구
소고기친구님의 개인사이트
Snow Ring*Dmyo
디묘님의 개인사이트
island-horizon
황산님의 개인사이트
ObsidianotE
흑요석님의 개인사이트
nineteen19
19님의 개인사이트
감자동8번지
나코파파님의 여고생 전문점
ROBOTA
ROBOTA님의 개인사이트
Croove web
Croove(류휘만)님의 홈페이지
talkback swiiitch - ESTi
ESTi(박진배)님의 블로그
Forte Escape
Forte Escape님의 블로그
New Caizer.com !!
카이져닷컴 ! - Mac소식, 잡담
Artfrige on iLife
디자이너 artfrige님의 블로그
아이런메이든
아이런메이든님의 블로그
망상 블로그
"루트 칠의 법칙 작용중"
논리에러의 독백공간
"..."
Open Sea
"떠돌이의 허접한 우분투 이야기"

Google AdSense

DJMAX Technika OST