+ Yanıtla
Toplam 4 sonuçtan 1 ile 4 arası olanlar

Konu Başlığı: ASP ile SHA1 (Hash) değeri üretmek

  1. #1

    ASP ile SHA1 (Hash) değeri üretmek

    Garanti Bankası sanal POS için yeni 3D sistemine geçti, bizim de dünyamız şaştı Herşeyi hallettik, ama formdan SHA1 değeri üretmeyi başaramadık, durum şu şekilde;
    Formda

    <form name="pay_form" action="https://ccpos.garanti.com.tr/servlet/gar3Dgate" method="post" >
    <input type="hidden" name="clientid" value="123456">
    <input type="hidden" name="oid" value="zr1mwak">
    <input type="hidden" name="amount" value="5.00">
    <input type="hidden" name="okUrl" value="https://www.domain.com/tr/web/okurl.ASP" >
    <input type="hidden" name="failUrl" value="https://www.domain.com/tr/web/failurl.ASP" >
    <input type="hidden" name="storetype" value="3d" >
    <input type="hidden" name="islemtipi" value="Auth" >
    <input type="hidden" name="firmaadi" value="Deneme Firması">
    <input type="hidden" name="rnd" value="kwrma06AiD" >
    <input type="hidden" name="hash" value="BURAYI_HALLEDEMEDİM" >
    <input type="hidden" name="taksit" value="1">
    <input type="hidden" name="lang" value="tr">

    satırları var, halledemediğim kısım yazdığım gibi hash kısmı. Yolladıkları pdf dökümanında;

    HASH Güvenlik kontrolü için üretilen SHA1 değeri.
    SHA1(clientid + oid + amount + okUrl + failUrl + islemtipi + taksit + rnd + işyerianahtarı)

    gibi bir bilgi var. clientid, oid, amount, okUrl, failUrl, islemtipi, taksit, rnd değerleri formda hidden olarak mevcut. işyerianahtarı bilgisini de 123456 olarak verdiler. Şimdi benim elimdeki bu bilgileri yan yana yazıp (veya pdf'de yazdıkları gibi araya + koyup) ortaya çıkacak yeni karakter dizisini SHA1 ile kripto edilmiş bir değere çevirmem gerekiyor. internet'te epeyce araştırdım, hemen hemen tüm yazılanlar ASP.NET üzerine, .NET ile bu değer dahili fonksiyon olarak gelmiş ve server tarafından üretiliyormuş. Ama sitemiz bildiğimiz klasik ASP, NET ile hiçbir ilgisi yok, bizim de NET ile hiçbir bilgimiz yok. ASP ile bu işin nasıl yapılacağını bilen varmı, gerekirse komponent de alabiliriz.

    İlginize şimdiden teşekkürler.

  2. #2

    Re: ASP ile SHA1 (Hash) değeri üretmek

    JavaScript ile yazılmış bir fonksiyon :

    http://forums.aspfree.com/code-bank-...ash-82166.html


    Burada da bir sha1 hash fonksiyonu var.

    http://fisheye1.cenqua.com/browse/of...ha1.asp?r=MAIN

    Kod:
    169     Function sha1_Hash(pStrMessage)
    170 	Dim lLngLen, lBytLenW, lLngTempWordWAry, lLngNumBlocks, lLngBlock, lIntT, lBytTempAry
    171 	Dim lVarWordWAry(79), lVarWordKAry(3)
    172 	Dim lStrBlockText, lStrWordText, lStrPadMessage
    173 	Dim lBytWordH0Ary, lBytWordH1Ary, lBytWordH2Ary, lBytWordH3Ary, lBytWordH4Ary
    174 	Dim lBytWordAAry, lBytWordBAry, lBytWordCAry, lBytWordDAry, lBytWordEAry, lBytWordFAry
    175 	   
    176 	   lLngLen = Len(cstr(pStrMessage))
    177 	   
    178 	   lBytLenW = DoubleToWord(CDbl(lLngLen) * 8)
    179 	   lStrPadMessage = pStrMessage & Chr(128) & String((128 - (lLngLen Mod 64) - 9) Mod 64, Chr(0)) & String(4, Chr(0)) & Chr(lBytLenW(0)) & Chr(lBytLenW(1)) & Chr(lBytLenW(2)) & Chr(lBytLenW(3))
    180 	   lLngNumBlocks = Len(lStrPadMessage) / 64
    181 	   
    182 	   lVarWordKAry(0) = HexToWord("5A827999")
    183 	   lVarWordKAry(1) = HexToWord("6ED9EBA1")
    184 	   lVarWordKAry(2) = HexToWord("8F1BBCDC")
    185 	   lVarWordKAry(3) = HexToWord("CA62C1D6")
    186 	   lBytWordH0Ary = HexToWord("67452301")
    187 	   lBytWordH1Ary = HexToWord("EFCDAB89")
    188 	   lBytWordH2Ary = HexToWord("98BADCFE")
    189 	   lBytWordH3Ary = HexToWord("10325476")
    190 	   lBytWordH4Ary = HexToWord("C3D2E1F0")
    191 	   
    192 	   For lLngBlock = 0 To lLngNumBlocks - 1
    193 	      
    194 	          lStrBlockText = Mid(lStrPadMessage, (lLngBlock * 64) + 1, 64)
    195 	      
    196 	          For lIntT = 0 To 15
    197 	         
    198 	                 lStrWordText = Mid(lStrBlockText, (lIntT * 4) + 1, 4)
    199 	         lVarWordWAry(lIntT) = Array(Asc(Mid(lStrWordText, 1, 1)), Asc(Mid(lStrWordText, 2, 1)), Asc(Mid(lStrWordText, 3, 1)), Asc(Mid(lStrWordText, 4, 1)))
    200 	      
    201 	          Next
    202 	      
    203 	          For lIntT = 16 To 79
    204 	         
    205 	                 lVarWordWAry(lIntT) = CircShiftLeftW(XorW(XorW(XorW(lVarWordWAry(lIntT - 3), lVarWordWAry(lIntT - 8)), lVarWordWAry(lIntT - 14)), lVarWordWAry(lIntT - 16)), 1)
    206 	      
    207 	          Next
    208 	      
    209 	          lBytWordAAry = lBytWordH0Ary
    210 	      lBytWordBAry = lBytWordH1Ary
    211 	      lBytWordCAry = lBytWordH2Ary
    212 	      lBytWordDAry = lBytWordH3Ary
    213 	      lBytWordEAry = lBytWordH4Ary
    214 	      
    215 	          For lIntT = 0 To 79
    216 	         
    217 	                 lBytWordFAry = F(lIntT, lBytWordBAry,  lBytWordCAry, lBytWordDAry)
    218 	         lBytTempAry = AddW(AddW(AddW(AddW(CircShiftLeftW(lBytWordAAry, 5), lBytWordFAry), lBytWordEAry), lVarWordWAry(lIntT)), lVarWordKAry(lIntT \ 20))
    219 	         lBytWordEAry = lBytWordDAry
    220 	         lBytWordDAry = lBytWordCAry
    221 	         lBytWordCAry = CircShiftLeftW(lBytWordBAry, 30)
    222 	         lBytWordBAry = lBytWordAAry
    223 	         lBytWordAAry = lBytTempAry
    224 	      
    225 	          Next
    226 	      
    227 	          lBytWordH0Ary = AddW(lBytWordH0Ary, lBytWordAAry)
    228 	      lBytWordH1Ary = AddW(lBytWordH1Ary, lBytWordBAry)
    229 	      lBytWordH2Ary = AddW(lBytWordH2Ary, lBytWordCAry)
    230 	      lBytWordH3Ary = AddW(lBytWordH3Ary, lBytWordDAry)
    231 	      lBytWordH4Ary = AddW(lBytWordH4Ary, lBytWordEAry)
    232 	   
    233 	   Next
    234 	   
    235 	   sha1_Hash = WordToHex(lBytWordH0Ary) & WordToHex(lBytWordH1Ary) & WordToHex(lBytWordH2Ary) &  WordToHex(lBytWordH3Ary) & WordToHex(lBytWordH4Ary)
    236 	
    237 	End Function
    
    Bu adreste de bileşen kullanılarak yapılanı var :

    http://www.example-code.com/asp/Sha1String.asp

    Kolay Gelsin.

  3. #3

    Re: ASP ile SHA1 (Hash) değeri üretmek

    Bugün ASP ile hash hesaplanmasına benimde ihtiyacım oldu @xedition verdiğin ilk örnek işe yarıyor, teşekkür ederim fakat garantinin yeni 3Dsi için yeterli değil. Ek olarak kodun base64 e çevrilmesi gerekiyor. Onun için ise aşağıdaki fonksiyonu kullanabilirsiniz.

    PHP Kodu:

    <%
    ' Functions to provide encoding/decoding of strings with Base64.

    ' Encoding: myEncodedString = base64_encode( inputString )
    DecodingmyDecodedString base64_decodeencodedInputString )
    '
    Programmed by Markus Hartsmar for ShameDesigns in 2002. 
    ' Email me at: mark@shamedesigns.com
    Visit our website athttp://www.shamedesigns.com/
    '

        Dim Base64Chars
        Base64Chars =    "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & _
                "abcdefghijklmnopqrstuvwxyz" & _
                "0123456789" & _
                "+/"


        ' 
    Functions for encoding string to Base64
        
    Public Function base64_encodebyVal strIn )
            
    Dim c1c2c3w1w2w3w4nstrOut
            
    For 1 To LenstrIn Step 3
                c1 
    AscMidstrInn) )
                
    c2 AscMidstrIn1) + Chr(0) )
                
    c3 AscMidstrIn2) + Chr(0) )
                
    w1 Intc1 ) : w2 = ( c1 And ) * 16 Intc2 16 )
                If 
    LenstrIn ) >= 1 Then 
                    w3 
    = ( c2 And 15 ) * Intc3 64 
                Else 
                    
    w3 = -1
                End 
    If
                If 
    LenstrIn ) >= 2 Then 
                    w4 
    c3 And 63 
                
    Else 
                    
    w4 = -1
                End 
    If
                
    strOut strOut mimeencodew1 ) + mimeencodew2 ) + _
                          mimeencode
    w3 ) + mimeencodew4 )
            
    Next
            base64_encode 
    strOut
        End 
    Function

        Private Function 
    mimeencodebyVal intIn )
            If 
    intIn >= 0 Then 
                mimeencode 
    MidBase64CharsintIn 1
            Else 
                
    mimeencode ""
            
    End If
        
    End Function    


         Function 
    to decode string from Base64
        
    Public Function base64_decodebyVal strIn )
            
    Dim w1w2w3w4nstrOut
            
    For 1 To LenstrIn Step 4
                w1 
    mimedecodeMidstrInn) )
                
    w2 mimedecodeMidstrIn1) )
                
    w3 mimedecodeMidstrIn2) )
                
    w4 mimedecodeMidstrIn3) )
                If 
    w2 >= 0 Then _
                    strOut 
    strOut _
                        Chr
    ( ( ( w1 Intw2 16 ) ) And 255 ) )
                If 
    w3 >= 0 Then _
                    strOut 
    strOut _
                        Chr
    ( ( ( w2 16 Intw3 ) ) And 255 ) )
                If 
    w4 >= 0 Then _
                    strOut 
    strOut _
                        Chr
    ( ( ( w3 64 w4 ) And 255 ) )
            
    Next
            base64_decode 
    strOut
        End 
    Function

        Private Function 
    mimedecodebyVal strIn )
            If 
    LenstrIn ) = 0 Then 
                mimedecode 
    = -: Exit Function
            Else
                
    mimedecode InStrBase64CharsstrIn ) - 1
            End 
    If
        
    End Function

    %> 

  4. #4

    Re: ASP ile SHA1 (Hash) değeri üretmek

    Microsoft VBScript runtime error '800a01f5'

    Illegal assignment: 'Il'

    bu mesajı alıyorum nasıl çöeri
    Mesaj YILDIRIM22 tarafından 14.04.2008 (05:48) yeniden düzenlendi.

+ Yanıtla

Bu konu başlığı için etiketler

Mesaj Seçenekleri

  • Yeni başlık açamazsınız
  • Cevap yazabilirsiniz
  • Dosya ekleyemezsiniz
  • Mesajlarınızı değiştiremezsiniz