:valla arkadaşlar haklısınız gündüz gzü ve de ayık kafa ile okuyunca gerçekten de adamın saçmaladığının biraz farkına vardım :)biraz daha düzenli bir şeyler hazırlayacam Boşver kardeş olur byle şeyler sıkma canını, yeterki amaçın iyi olsun. Bundan sonraki yazılarında rnek kodlar yerine işin mantığı verirsen daha yararlı olur kanatındeyim.

valla arkadaşlar haklısınız gündüz gzü ve de ayık kafa ile okuyunca gerçekten de adamın saçmaladığının biraz farkına vardım :)biraz daha düzenli bir şeyler hazırlayacam MCP MCSA 2003 MCSE 2003

Güzel yapmışsında, alıntı yaptığın yazı çok ktü abi, ben hiçbir şey bilmesem hashing burdan ğrenmem imkansız."Hashing denilen sey hash üretme islemidir. Puha bu mudur yane diyen cok olmustur herhalde. Belli bir stringden belli bir algoritma ile belli uzunlukda bir String elde etmeye yarar. Fakat her stringden farkli bir hash olusur. Ayri stringden ayni hashler OLUSAMAZ (diyorlarki 2^128 de 1 ihtimal falan)" Hala anlamadım :))Hash algoritmaları, herhangi bir datayı alıp bunu bir fonksiyon algoritmasından (MD5, SHA, Panama...) geçirir ve sonuç olarak size anlamsız bir bir kod verir. Bu kod, datanızın parmak izi gibidir ve bir benzeri yoktur . Veriyi şifrelemez, sadece onun parmak izini alır. Hash algoritmaları tek ynlü bir fonksiyondur. Yani fonksiyonun tersi yoktur ve "ters mühendisliğe" elverişli değildir. Bu fizikte yanma olayına benzer, kağıdı yakarsanız kül elde edersiniz. Ama külü tekrar kağıda çeviremezsiniz, sadece onun bir kağıda ait kül olduğunu tahmin edersiniz ama asla yaktığınız kağıdın şeklini bilemezsiniz.

md5 için vbasic modülü; 'CalculateMD5 şeklinde kullanılcakOption ExplicitPrivate lngTrack As LongPrivate arrLongConversion(4) As LongPrivate arrSplit64(63) As BytePrivate Const OFFSET_4 = 4294967296#Private Const MAXINT_4 = 2147483647 Private Const S11 = 7Private Const S12 = 12Private Const S13 = 17Private Const S14 = 22Private Const S21 = 5Private Const S22 = 9Private Const S23 = 14Private Const S24 = 20Private Const S31 = 4Private Const S32 = 11Private Const S33 = 16Private Const S34 = 23Private Const S41 = 6Private Const S42 = 10Private Const S43 = 15Private Const S44 = 21Private Function MD5Round As Long Select Case strRound Case Is = "FF" a = MD5LongAdd4(a, Or (Not And d), X, ac) a = MD5Rotate a = MD5LongAdd Case Is = "GG" a = MD5LongAdd4(a, Or (C And Not , X, ac) a = MD5Rotate a = MD5LongAdd Case Is = "HH" a = MD5LongAdd4 a = MD5Rotate a = MD5LongAdd Case Is = "II" a = MD5LongAdd4(a, C Xor (b Or Not , X, ac) a = MD5Rotate a = MD5LongAdd End Select End FunctionPrivate Function MD5Rotate As Long Dim lngSign As Long Dim lngI As Long lngBits = (lngBits Mod 32) If lngBits = 0 Then MD5Rotate = lngValue: Exit Function For lngI = 1 To lngBits lngSign = lngValue And &HC0000000 lngValue = (lngValue And &H3FFFFFFF) 2 lngValue = lngValue Or ((lngSign < 0) And 1) Or (CBool(lngSign And &H40000000) And &H80000000) Next MD5Rotate = lngValueEnd FunctionPrivate Function TRID As String Dim sngNum As Single, lngnum As Long Dim strResult As String sngNum = Rnd(2147483648#) strResult = CStr strResult = Replace(strResult, "0.", "") strResult = Replace strResult = Replace TRID = strResultEnd FunctionPrivate Function MD564Split(lngLength As Long, bytBuffer As Byte) As String Dim lngBytesTotal As Long, lngBytesToAdd As Long Dim intLoop As Integer, intLoop2 As Integer, lngTrace As Long Dim intInnerLoop As Integer, intLoop3 As Integer lngBytesTotal = lngTrack Mod 64 lngBytesToAdd = 64 - lngBytesTotal lngTrack = If lngLength >= lngBytesToAdd Then For intLoop = 0 To lngBytesToAdd - 1 arrSplit64 = bytBuffer Next intLoop MD5Conversion arrSplit64 lngTrace = Mod 64 For intLoop2 = lngBytesToAdd To lngLength - intLoop - lngTrace Step 64 For intInnerLoop = 0 To 63 arrSplit64 = bytBuffer(intLoop2 + intInnerLoop) Next intInnerLoop MD5Conversion arrSplit64 Next intLoop2 lngBytesTotal = 0 Else intLoop2 = 0 End If For intLoop3 = 0 To lngLength - intLoop2 - 1 arrSplit64(lngBytesTotal + intLoop3) = bytBuffer(intLoop2 + intLoop3) Next intLoop3 End FunctionPrivate Function MD5StringArray As Byte Dim intLoop As Integer Dim bytBuffer As Byte ReDim bytBuffer(Len For intLoop = 0 To Len - 1 bytBuffer = Asc(Mid(strInput, intLoop + 1, 1)) Next intLoop MD5StringArray = bytBuffer End FunctionPrivate Sub MD5Conversion(bytBuffer As Byte) Dim X(16) As Long, a As Long Dim b As Long, C As Long Dim d As Long a = arrLongConversion(1) b = arrLongConversion(2) C = arrLongConversion(3) d = arrLongConversion(4) MD5Decode 64, X, bytBuffer MD5Round "FF", a, b, C, d, X(0), S11, -680876936 MD5Round "FF", d, a, b, C, X(1), S12, -389564586 MD5Round "FF", C, d, a, b, X(2), S13, 606105819 MD5Round "FF", b, C, d, a, X(3), S14, -1044525330 MD5Round "FF", a, b, C, d, X(4), S11, -176418897 MD5Round "FF", d, a, b, C, X(5), S12, 1200080426 MD5Round "FF", C, d, a, b, X(6), S13, -1473231341 MD5Round "FF", b, C, d, a, X(7), S14, -45705983 MD5Round "FF", a, b, C, d, X(8), S11, 1770035416 MD5Round "FF", d, a, b, C, X(9), S12, -1958414417 MD5Round "FF", C, d, a, b, X(10), S13, -42063 MD5Round "FF", b, C, d, a, X(11), S14, -1990404162 MD5Round "FF", a, b, C, d, X(12), S11, 1804603682 MD5Round "FF", d, a, b, C, X(13), S12, -40341101 MD5Round "FF", C, d, a, b, X(14), S13, -1502002290 MD5Round "FF", b, C, d, a, X(15), S14, 1236535329 MD5Round "GG", a, b, C, d, X(1), S21, -165796510 MD5Round "GG", d, a, b, C, X(6), S22, -1069501632 MD5Round "GG", C, d, a, b, X(11), S23, 643717713 MD5Round "GG", b, C, d, a, X(0), S24, -373897302 MD5Round "GG", a, b, C, d, X(5), S21, -701558691 MD5Round "GG", d, a, b, C, X(10), S22, 38016083 MD5Round "GG", C, d, a, b, X(15), S23, -660478335 MD5Round "GG", b, C, d, a, X(4), S24, -405537848 MD5Round "GG", a, b, C, d, X(9), S21, 568446438 MD5Round "GG", d, a, b, C, X(14), S22, -1019803690 MD5Round "GG", C, d, a, b, X(3), S23, -187363961 MD5Round "GG", b, C, d, a, X(8), S24, 1163531501 MD5Round "GG", a, b, C, d, X(13), S21, -1444681467 MD5Round "GG", d, a, b, C, X(2), S22, -51403784 MD5Round "GG", C, d, a, b, X(7), S23, 1735328473 MD5Round "GG", b, C, d, a, X(12), S24, -1926607734 MD5Round "HH", a, b, C, d, X(5), S31, -378558 MD5Round "HH", d, a, b, C, X(8), S32, -2022574463 MD5Round "HH", C, d, a, b, X(11), S33, 1839030562 MD5Round "HH", b, C, d, a, X(14), S34, -35309556 MD5Round "HH", a, b, C, d, X(1), S31, -1530992060 MD5Round "HH", d, a, b, C, X(4), S32, 1272893353 MD5Round "HH", C, d, a, b, X(7), S33, -155497632 MD5Round "HH", b, C, d, a, X(10), S34, -1094730640 MD5Round "HH", a, b, C, d, X(13), S31, 681279174 MD5Round "HH", d, a, b, C, X(0), S32, -358537222 MD5Round "HH", C, d, a, b, X(3), S33, -722521979 MD5Round "HH", b, C, d, a, X(6), S34, 76029189 MD5Round "HH", a, b, C, d, X(9), S31, -640364487 MD5Round "HH", d, a, b, C, X(12), S32, -421815835 MD5Round "HH", C, d, a, b, X(15), S33, 530742520 MD5Round "HH", b, C, d, a, X(2), S34, -995338651 MD5Round "II", a, b, C, d, X(0), S41, -198630844 MD5Round "II", d, a, b, C, X(7), S42, 1126891415 MD5Round "II", C, d, a, b, X(14), S43, -1416354905 MD5Round "II", b, C, d, a, X(5), S44, -57434055 MD5Round "II", a, b, C, d, X(12), S41, 1700485571 MD5Round "II", d, a, b, C, X(3), S42, -1894986606 MD5Round "II", C, d, a, b, X(10), S43, -1051523 MD5Round "II", b, C, d, a, X(1), S44, -2054922799 MD5Round "II", a, b, C, d, X(8), S41, 1873313359 MD5Round "II", d, a, b, C, X(15), S42, -30611744 MD5Round "II", C, d, a, b, X(6), S43, -1560198380 MD5Round "II", b, C, d, a, X(13), S44, 1309151649 MD5Round "II", a, b, C, d, X(4), S41, -145523070 MD5Round "II", d, a, b, C, X(11), S42, -1120210379 MD5Round "II", C, d, a, b, X(2), S43, 718787259 MD5Round "II", b, C, d, a, X(9), S44, -343485551 arrLongConversion(1) = MD5LongAdd(arrLongConversion(1), a) arrLongConversion(2) = MD5LongAdd(arrLongConversion(2), b) arrLongConversion(3) = MD5LongAdd(arrLongConversion(3), C) arrLongConversion(4) = MD5LongAdd(arrLongConversion(4), d) End SubPrivate Function MD5LongAdd(lngVal1 As Long, lngVal2 As Long) As Long Dim lngHighWord As Long Dim lngLowWord As Long Dim lngOverflow As Long lngLowWord = (lngVal1 And &HFFFF&) + (lngVal2 And &HFFFF&) lngOverflow = lngLowWord \ 65536 lngHighWord = (((lngVal1 And &HFFFF0000) \ 65536) + ((lngVal2 And &HFFFF0000) \ 65536) + lngOverflow) And &HFFFF& MD5LongAdd = MD5LongConversion((lngHighWord 65536#) + End FunctionPrivate Function MD5LongAdd4(lngVal1 As Long, lngVal2 As Long, lngVal3 As Long, lngVal4 As Long) As Long Dim lngHighWord As Long Dim lngLowWord As Long Dim lngOverflow As Long lngLowWord = (lngVal1 And &HFFFF&) + (lngVal2 And &HFFFF&) + (lngVal3 And &HFFFF&) + (lngVal4 And &HFFFF&) lngOverflow = lngLowWord \ 65536 lngHighWord = (((lngVal1 And &HFFFF0000) \ 65536) + ((lngVal2 And &HFFFF0000) \ 65536) + ((lngVal3 And &HFFFF0000) \ 65536) + ((lngVal4 And &HFFFF0000) \ 65536) + lngOverflow) And &HFFFF& MD5LongAdd4 = MD5LongConversion((lngHighWord 65536#) + End FunctionPrivate Sub MD5Decode(intLength As Integer, lngOutBuffer As Long, bytInBuffer As Byte) Dim intDblIndex As Integer Dim intByteIndex As Integer Dim dblSum As Double intDblIndex = 0 For intByteIndex = 0 To intLength - 1 Step 4 dblSum = bytInBuffer + bytInBuffer(intByteIndex + 1) 256# + bytInBuffer(intByteIndex + 2) 65536# + bytInBuffer(intByteIndex + 3) 16777216# lngOutBuffer = MD5LongConversion intDblIndex = (intDblIndex + 1) Next intByteIndexEnd SubPrivate Function MD5LongConversion As Long If dblValue < 0 Or dblValue >= OFFSET_4 Then Error 6 If dblValue <= MAXINT_4 Then MD5LongConversion = dblValue Else MD5LongConversion = dblValue - OFFSET_4 End If End FunctionPrivate Sub MD5Finish Dim dblBits As Double Dim arrPadding(72) As Byte Dim lngBytesBuffered As Long arrPadding(0) = &H80 dblBits = lngTrack 8 lngBytesBuffered = lngTrack Mod 64 If lngBytesBuffered <= 56 Then MD564Split (56 - lngBytesBuffered), arrPadding Else MD564Split (120 - lngTrack), arrPadding End If arrPadding(0) = MD5LongConversion And &HFF& arrPadding(1) = MD5LongConversion \ 256 And &HFF& arrPadding(2) = MD5LongConversion \ 65536 And &HFF& arrPadding(3) = MD5LongConversion \ 16777216 And &HFF& arrPadding(4) = 0 arrPadding(5) = 0 arrPadding(6) = 0 arrPadding(7) = 0 MD564Split 8, arrPadding End SubPrivate Function MD5StringChange As String Dim bytA As Byte Dim bytB As Byte Dim bytC As Byte Dim bytD As Byte bytA = lngnum And &HFF& If bytA < 16 Then MD5StringChange = "0" & Hex Else MD5StringChange = Hex End If bytB = (lngnum And &HFF00&) \ 256 If bytB < 16 Then MD5StringChange = MD5StringChange & "0" & Hex Else MD5StringChange = MD5StringChange & Hex End If bytC = (lngnum And &HFF0000) \ 65536 If bytC < 16 Then MD5StringChange = MD5StringChange & "0" & Hex Else MD5StringChange = MD5StringChange & Hex End If If lngnum < 0 Then bytD = ((lngnum And &H7F000000) \ 16777216) Or &H80& Else bytD = (lngnum And &HFF000000) \ 16777216 End If If bytD < 16 Then MD5StringChange = MD5StringChange & "0" & Hex Else MD5StringChange = MD5StringChange & Hex End IfEnd FunctionPrivate Function MD5Value As String MD5Value = LCase(MD5StringChange(arrLongConversion(1)) & MD5StringChange(arrLongConversion(2)) & MD5StringChange(arrLongConversion(3)) & MD5StringChange(arrLongConversion(4)))End FunctionPublic Function CalculateMD5 As String Dim bytBuffer As Byte bytBuffer = MD5StringArray MD5Start MD564Split Len , bytBuffer MD5Finish CalculateMD5 = MD5Value End FunctionPrivate Sub MD5Start lngTrack = 0 arrLongConversion(1) = MD5LongConversion(1732584193#) arrLongConversion(2) = MD5LongConversion(4023233417#) arrLongConversion(3) = MD5LongConversion(2562383102#) arrLongConversion(4) = MD5LongConversion(271733878#) End Sub

selamlar uzun süredir tahribata üye olmama rağmen iş yoğunluğu nedeni ile foruma bir süredir giremiyordum ve de haklı olarak üyeliğimde sona ermiş bende geldim ve de ilk security blümüne bir bakayım dedim direk dikkatimi MD5 hash algoritması çekti bilmeyen arkadaşlar için de byle bir topic açmayı uygun buldum umarım yardımcı olur Nedir bu MD5? Yenir mi? MD5 bir hashing algoritmasidir. Algoritmanin detayi icin http://www.faqs.org/rfcs/rfc1321.htmladresinden gorebilirsiniz. Hashing nedir?Hashing denilen sey hash üretme islemidir. Puha bu mudur yane diyen cok olmustur herhalde. Belli bir stringden belli bir algoritma ile belli uzunlukda bir String elde etmeye yarar. Fakat her stringden farkli bir hash olusur. Ayri stringden ayni hashler OLUSAMAZ (diyorlarki 2^128 de 1 ihtimal falan)CEO muz gecen gunku code campimizda ayni hashe sahip iki farkli dosya bulundugunu soyledi. Ben halen gormeden inanmam diyenlerdenim :) MD5 128-bit digest SHA1 ise 160-bit digest olustur. Evet simdi ana hatlari aldik. Bilmemiz gereken son sey ise bu encyrption tek yonludur. Hashe donusen veri geri dondurulemez. Nerelerde kullanilir. En onemli alanlari clear text tutulan passwordlerde olabilir. Mesela database a username password bilgisini tutucaz. password kolonunu clear text tuttugumuz zaman sistem bir sekilde indirilirse texte hemen ulasilir en azindan bu veriye kadar ulasabilcek adami biraz urastirmak lazim diye dusunuyorum. Sniff edildiginde veriler gorulse de Tam ne oldugu czülemez. Client side da javascriptle bile md5 yapabildiginize gore bu iyi bisi... Databasedeki hashli veri bu hashlenmis veriyle karsilastirilir. Ikinci en onemli alani ise dosyalarin checksumi olarak kullanilir dosyanin degistirilip degistirilmedigini anlamak icinkullanilabilinir. Bir mesajin integritysini cozmeye birebirdir. O yuzden Signing de de kullanılır. UFFFF Amma cok annattin lan diyenlere daha anlatasim var ama artik biraz da security manyaklarindan cikip JAVA manyakligina donelim. iste size cok kucuk bir kod.. package md5;import java. security. MessageDigest;public class Md5Test{ public Md5Test public String createMd5Hash(String hashingAlgorithm, String stringToMd5) { String plainText; StringBuffer hexString = new StringBuffer ; try { MessageDigest md=MessageDigest. getInstance ; //Pazara gidelim bir digest alalim -- SHA1, MD5... md. update(stringToMd5. getBytes ; byte digest = md. digest ; for (int i = 0; i < digest. length; i++) { plainText = Integer. toHexString(0xFF & digest); if (plainText. length < 2) hexString. append ; } } catch return hexString. toString ; } public static void main }Simdi birazda burda olan olaydan bahsedelim. getInstance ile bir Message Digest alinir. Alirken hangi algoritmayi kullancagimizi soyledik. Byte array olarak istedigimiz veriyi update fonksiyonu ile yolladik. ve digest fonksiyonunu cagrirak byte arraye kusturduk.//sevdim bu lafi // Elimizde hash var artik. Bundan sonraki kisim byte arrayi hexStringe cevirmekle alakali. MCP MCSA 2003 MCSE 2003

:Ya çok sağol ama birşey sorucam bu md5leri çzen bir program grdüm rus hacklerde ama videoyu tekrar tekrar izledim brute force kullanmıyordu bana bu brute force kullanmadan çzen program lazım holyone nın var ama oda brute force lütfen yardım edermisin acil =(( yazıyı tekrar bi oku derim..

aha buda MD5 JAVA KODU işlem budurimport java.io. ;public class MD5 { private class MD5State { public void reset public void copy(MD5State from) public boolean valid; public int state ; public long bitCount; public byte buffer ; public MD5State } public MD5 public byte getHash { if return encode(finalState. state, 16); } public String getHashString public static byte getHash public static String getHashString public static byte getHash throws IOException public static String getHashString throws IOException public static byte getHash throws IOException public static String getHashString throws IOException public static byte getHash public static String getHashString public static byte getHash throwsUnsupportedEncodingException public static String getHashString throwsUnsupportedEncodingException public void reset public String toString private void update(MD5State state, byte buffer , int offset, intlength) { finalState. valid = false; if length = buffer. length - offset; int index = (state. bitCount >>> 3) & 0x3f; state. bitCount += length << 3; int partlen = 64 - index; int i = 0; if if } public void update public void update public void update public void update private void update(MD5State state, long l) { update(state, new byte , 0, 8); } public void update public void update throwsUnsupportedEncodingException private static String toHex { StringBuffer buf = new StringBuffer(hash. length 2); for(int i = 0; i < hash. length; i++) return buf. toString ; } private static int FF private static int GG private static int HH private static int II private static byte encode { byte out = new byte ; int j; int i = j = 0; for(; j < len; j += 4) return out; } private int decode { int j; int i = j = 0; for(; j < len; j += 4) return decodeBuffer; } private static void transform(MD5State state, int x ) private MD5State workingState; private MD5State finalState; private int decodeBuffer ; private static final byte padding = ;} ftw

hocam idare et artık ne yapalım :)olacak o kadar adam kodda attırmış tı oraya bende ondan direk olarak onu aldım yaa ne yapacaksın kardeş o yazdığına bende çok güldüm ama ne yapalım en azından arkadaşlar bi fikir sahibi olsun diye ekledim kusura bakmayın MCP MCSA 2003 MCSE 2003