Zoque
Dirsek Teması:
Geri Dön Zoque » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » ASP » ASP ile SHA1 (Hash) değeri üretmek

ASP ile SHA1 (Hash) değeri üretmek

 
Konuyu Paylaş Seçenekler
 
hayatbilgisayar's Avatar
Üyelik Tarihi: 27.04.2003
Mesaj: 164
27.04.2007 | 03:05 | #1

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.
  Alıntı yap
 
xedition's Avatar
Üyelik Tarihi: 13.03.2007
Mesaj: 24
27.04.2007 | 05:55 | #2

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.
__________________
plustr.com
  Alıntı yap
 
Sargon's Avatar
Üyelik Tarihi: 02.05.2005
Mesaj: 135
26.07.2007 | 11:55 | #3

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 Code:

<%
' 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

%> 
  Alıntı yap
 
YILDIRIM22's Avatar
Üyelik Tarihi: 12.04.2008
Mesaj: 3
13.04.2008 | 16:27 | #4

Microsoft VBScript runtime error '800a01f5'

Illegal assignment: 'Il'

bu mesajı alıyorum nasıl çöeri

Mesaj YILDIRIM22 tarafından 14.04.2008 (04:48) yeniden düzenlendi.
  Alıntı yap
Yanıt

Etiketler

uretmek , degeri , hash , sha1 , asp

Seçenekler


 
Zoque'a hoşgeldiniz!
Zoque, 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. Bu amaçla saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]

Üye Girişi:

Connect with Facebook
Son Eklenen 20 Konu
BlogKüme'yi destekliyoruz
Kitap okuyor musunuz? Ne kadar peki?
Zoque'a sponsor olmak ister misiniz?

Zoque RSS Aboneliği Zoque RSS Aboneliği
En yeni konuları günün ilk ışıkları ile sabah kahvenizin yanında okumak ister misiniz?

Forum Yazılımı: vBulletin® Version 3.8.3 Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 vbulletin

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2009
Forum Saati GMT +2. Şu anda saat: 04:23.