본문 바로가기

쓰기


작업중인 코드이며 완벽하게 작동 되지 않는 코드입니다.

 

 '정수값을 이진 문자열로 변환
Function DecToBin(byteDec As Double)
    Dim sBin As String '이진 문자열
    Dim nTemp As Double '임시 값 저장소
   
    '변수에 값 입력
    nTemp = byteDec
   
    '2진 문자열 생성
    Do While nTemp >= 1
        '인수 분해 시작
        sBin = CStr(nTemp Mod 2) & sBin
        nTemp = Int(nTemp / 2)
    Loop
   
    '리턴 값 출력
    DecToBin = sBin
End Function

'이진 문자열을 정수값으로 변환
Function BinToDec(sDec As String)
    Dim nTemp As Double '임시 값 저장소
    Dim nCount As Integer '카운터
   
    '카운터 초기화
    nCount = 0
   
    '2진 문자열 생성
    Do While nCount < Len(sDec)
        '정수값 산출 시작
        nTemp = nTemp + (CDbl(Mid(sDec, Len(sDec) - nCount, 1)) * (2 ^ nCount))
   
        '카운터 증가
        nCount = nCount + 1
    Loop
   
    '리턴 값 출력
    BinToDec = nTemp

End Function

'Or 연산 수행
Function calcOr(nInput1 As Double, nInput2 As Double)
    Dim sData1 As String '입력 데이터1
    Dim sData2 As String '입력 데이터2
    Dim nCount As Integer '카운터
    Dim sTemp As String '임시 스티링
   
    '2진 스트링으로 변환
    sData1 = DecToBin(nInput1)
    sData2 = DecToBin(nInput2)
   
    '32비트로 변환
    sData1 = String(32 - Len(sData1), "0") & sData1
    sData2 = String(32 - Len(sData2), "0") & sData2
   
    '32비트 Or 연산 수행(한자리씩 비교)
    For nCount = 1 To 32
       
        If Mid(sData1, nCount, 1) = 1 Or Mid(sData2, nCount, 1) = 1 Then
            sTemp = sTemp + "1"
        Else
            sTemp = sTemp + "0"
        End If
    Next
   
    '리턴 값 출력
    calcOr = BinToDec(sTemp)
End Function

'32비트 좌측 시프트 연산 수행
Function ShiftLeft(nInput As Double, nShift As Integer)
    Dim sData As String '작업용 데이터
    Dim sValue As String '임시 출력 값
   
    '이진 변환
    sData = DecToBin(nInput)
   
    '32비트 변환
    sData = String(32 - Len(sData), "0") & sData
   
    '시프트 연산 수행
    sValue = Mid(sData, nShift + 1, Len(sData))
   
    '32비트 변환
    sValue = sValue & String(32 - Len(sValue), "0")
   
    '리턴 값 출력
    ShiftLeft = BinToDec(sValue)

End Function

'32비트 우측 시프트 연산 수행
Function ShiftRight(nInput As Double, nShift As Integer)
    Dim sData As String '작업용 데이터
    Dim sValue As String '임시 출력 값
   
    '이진 변환
    sData = DecToBin(nInput)
   
    '32비트 변환
    sData = String(32 - Len(sData), "0") & sData
   
    '시프트 연산 수행
    sValue = Mid(sData, 1, Len(sData) - nShift)
   
    '32비트 변환
    sValue = String(32 - Len(sValue), "0") & sValue
   
    '리턴 값 출력
    ShiftRight = BinToDec(sValue)
   
End Function

'해쉬 만들기
Function makeHash(arrInput() As Byte)
    Dim nCount As Integer '카운터
    Dim nTemp As Double '임시 데이터
   
    'arrInput 배열은 바이트 배열이며 하나의 배열안에 8비트의 데이터가 들어 있음
   
    '변수 초기화
    nCount = 0
    nTemp = 0
   
    '해쉬 만들기
    Do While nCount <= UBound(arrInput)
       
        'nTemp = calcOr(((nTemp * 128) Mod (2 ^ 32)), (nTemp / 128)) + arrInput(nCount) '작동 안됨(Mod (2 ^ 32) 연산 수행시 오류)
       
        '실제 해쉬 만들기 작업
        nTemp = calcOr(ShiftLeft(nTemp, 7), ShiftRight(nTemp, 7)) + arrInput(nCount)
       
        '배열 카운터 증가
        nCount = nCount + 1
    Loop
   
    '리턴 값 출력
    makeHash = nTemp

End Function

 
Sub testHash()
    Dim toolCharset As New ChilkatCharset2 '문자 인코딩 변환 툴 로드
    Dim sTemp As String
    Dim arrByte() As Byte
   
    '테스트 문자
    sString = "000"
   
    toolCharset.FromCharset = "unicode" '입력언어에서
    toolCharset.ToCharset = "shift_jis" 'Shift-JIS 로
   
    'Shift-JIS로 인코딩 변환 수행
    sTemp = toolCharset.ConvertData(sString)
   
    '배열 초기화
    ReDim arrByte(LenB(sTemp))
   
    '8비트씩 배열에 할당
    arrByte() = sTemp
   
    '해쉬 실행
    testHash = CStr(makeHash(arrByte()))
   
End Sub


조회 수 :
9022
등록일 :
2009.01.05
11:12:27
엮인글 :
https://arallab.hided.net/4197/c94/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/4197
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
104 Talk ...? [3] file 북극 12001   2008-09-28 2008-12-30 08:55
 
103 Talk 필터도 아래에 Context를 추가할 수 있나요? [3] Hide_D 11941   2009-12-14 2009-12-14 22:18
아래에 쓰여있는게 Memory Context이긴 한데, 그냥 훅 포인트 한정으로 한개씩 주는게 아니라 제한없이 필터에서도 저 아래 '별명'을 추가할 수 있었으면 좋겠네요. 그렇게하면, 단일 코드로 모든 내용이 다 지나가는 경우더라도 필터로 걸러서 따로따로 처리...  
102 Talk 기리기리 스크립트. 원본, 작업물. file 나는누구인감? 11933   2008-10-07 2008-10-07 22:53
 
101 Talk 히데님께 문의 해요! [2] file 라파에 11922   2008-09-21 2009-01-06 01:25
 
100 Talk Fixline용 텍스트 파일.... [3] file 처음처럼만 11753   2008-12-29 2008-12-30 09:02
 
99 Talk ATCode UI 버그 [1] Hide_D 11730   2008-11-01 2009-01-06 01:03
HOOK(0x00480A10,TRANS([ESP+0x28],PTRCHEAT,SAFE)),ENCODEKOR,HOOK(0x005622B0,TRANS([ESP+0x4],PTRCHEAT ​ ,SAFE)),HOOK(0x00562CB0,TRANS([ESP+0x4],PTRCHEAT,SAFE)),HOOK(0x004F5590,TRANS([ESP+0x4],PTRCHEAT,SAFE)) ​ ,HOOK(0x00481790,TRANS([ESP+0x40]...  
98 Talk 일단, 옵션창 이렇게 생기면 되나요? file Hide_D 11569   2008-09-22 2009-01-06 01:25
 
97 Talk 빈공간[...] file Hide_D 11531   2008-08-16 2008-08-19 00:01
 
96 Talk 히데님이 말씀하신 테스트파일 [2] file 유르_리샤 11530   2008-12-29 2008-12-30 08:25
 
95 Talk 역시 번역 플러그인 테스트용으론 Hide_D 11417   2008-07-21 2008-07-21 12:50
체험판이 최고군요 +_+ 사쿠라슈트랏세웹 체험판 설치해놓고 전에 관리자님이 올리신 코드로 잘 돌아가니 이걸로 테스트 해야겠군요  
94 Talk FixLine 기능 추가 [1] Hide_D 11416   2009-03-13 2009-03-13 21:23
rn r 이런식으로 나올때 r이 우선 적용되는 문제를 해결할것 -가능한 방법- 1. Greedy, UnGreedy의 부분적 적용 2. 우선순위 선택 3. 정규식과 맞짱뜨기 4. 어정쩡한 조건문 (r)(n) 이면 둘중 하나 있거나, 둘다 있거나 하면 그렇게 지정되는걸로 - 류제로님의...  
93 Talk [질문] CustomDic필터와 FixLine의 셋팅순서 [4] 호기심맨 11404   2009-01-03 2009-01-04 14:58
멀티플러그인 필터를 만들려고 하면서 제일 의문이 드는 부분인데요 그 필터들의 실행순서가 어떻게 결정되는지가 무척 궁금하네요 그러니까 예를 들어 A,B,C 3개의 필터를 순서대로 셋팅했다고 가정하면 제가 파악하기로는 알고리즘 코드 ↓ AFilter.OnPreTran...  
92 Talk 조만간 멀티플러그인은 기본 기능으로 흡수시킬까 합니다. 아랄 11346   2008-09-21 2009-01-06 01:25
그리고 ExtTextOut문제를 빨리 해결.. 기리기리 최신 패턴에 대한 업데이트 SVN 저장소 정리하기 등등.. 할게 많군여 ;;  
91 Talk CustomDic의 치환문자열에 대해 ( Hide님께) [2] 호기심맨 11323   2009-01-03 2009-01-05 00:04
안녕하세요 Hide님..저도 전부터 CustomDic유사한걸 만드드라 알아내고 여러번 Test해봐서 얻어낸 결론인데요.. 지금 Hide님이 정의하신 치환문자열"@*_D..../"보다는 역시 실제 쓰일리없는 엉망진창인 알파벳문자열이 훨씬 더 변역결과가 좋더군요. (주로 한...  
90 Talk 사용자대본 지나가다정착한이A님 특별판[...] file Hide_D 11242   2008-10-02 2009-01-06 01:24
 
89 Talk Re: SOW 모드의 신기한 점? file whoami 11209   2008-07-23 2009-01-06 01:27
 
88 Talk SVN 말이죠 ㅠ_ㅠ [3] file Hide_D 11128   2008-09-29 2009-01-06 01:24
 
87 Talk 아 이런 클라나드 [1] file my Vagina 11070   2008-07-13 2009-01-06 01:00
 
86 Talk 디나이코필터 [2] my vagina 10993   2008-12-31 2009-01-15 00:10
코필터는 대단히 훌륭한 필터죠 근데 전부 한자로 되있으믄 간간히 해석 안되는 부분이 생기기도 하는데 어쩔수 없는 부분이 보이거든요. 이런걸 수동으로 억제 해보자는 생각이에요. 아마 코필터 내부에 들어가야 할텐데, 코필터에 디나이필터를 넣어서 일본...  
85 Talk 라파에님 다시 한번 테스트해보세요. [3] file Hide_D 10896   2008-08-17 2008-08-17 17:23