• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vraag over berekenen SHA1 bestandshash

Status
Niet open voor verdere reacties.

Knuffie

Gebruiker
Lid geworden
21 jun 2005
Berichten
37
Hallo allemaal;

voor mijn werk (en hobby), namelijk het bewerken van data-bestanden en printen en coderen van pasjes moet ik nu op een pas met een chip een bestandshash toepassen genaamd: SHA1.

Ik heb al een hoop gegoogled, maar het enige resultaat is dat ik een site krijg waar ik in een vakje een aantal karakters in kan voeren, en dat ik dan als resultaat die hash krijg, maar ik moet 300.000 pasjes coderen, en voor elke pas 4x zo'n hash berekenen :lollig:

Heeft iemand wat meer info, en misschien een manier om dit geheel in - bij voorkeur - microsoft excel uit te voeren?

Bedankt voor alle evt. tips! :thumb:
 
ikke nie snappe.
ikke blond.

Hoi Knuffie,

Ik denk dat je je vraag wat duidelijker moet stellen. Welke gegevens heb je die je moet bewerken? Tot wat moeten ze bewerkt worden? Heb je digitaal een tekstbestand dat je wilt inlezen, bewerken en dan printen of zo?

Groeten,

Richard
 
Wat ik heb gedaan is een programmatje geinstalleerd. De eerste keer dat ik het draaide binnen excel crashte excel wel, dus hou daar even rekening mee. Daarna geen probleem meer gehad.
http://www.cryptosys.net/hash.html#download

Daar is het programma te vinden installeer het op je computer zodat je een hash functie in excel kan aanroepen. (Bij de eerste keer krijg je te zien dat je niet hebt betaald en bij mij crashte hij dus op dat scherm)

Vervolgens moet je via ALT F11 even je vba editor openen. Hier zet je de functies in die nodig zijn om het dll bestandje aan te roepen.

Nu heb je wat code nodig. Die code heb ik hieronder gezet. Zet in je A kolom alle dingen onder elkaar die je gehashed wil hebben en in je B kolom komen je resultaten. Start hiervoor de macro genaamd maak_SHA


Option Explicit

' SECURE HASH ALGORITHM 1 (SHA-1) HASH FUNCTION

Public Declare Function SHA1_StringHexHash Lib "diCrHash" _
(ByVal sDigest As String, ByVal sMessage As String) As Long

Public Declare Function SHA1_FileHexHash Lib "diCrHash" _
(ByVal sDigest As String, ByVal sFilename As String, ByVal sMode As String) As Long

Public Declare Function SHA1_BytesHexHash Lib "diCrHash" _
(ByVal sDigest As String, ByRef aByteArray As Byte, ByVal lngLength As Long) As Long

Public Declare Function SHA1_BytesHash Lib "diCrHash" _
(ByRef aDigest As Byte, ByRef aByteArray As Byte, ByVal lngLength As Long) As Long

Public Declare Function SHA1_Init Lib "diCrHash" () As Long

Public Declare Function SHA1_AddString Lib "diCrHash" _
(ByVal hContext As Long, ByVal sMessage As String) As Long

Public Declare Function SHA1_AddBytes Lib "diCrHash" _
(ByVal hContext As Long, ByRef aByteArray As Byte, ByVal lngLength As Long) As Long

Public Declare Function SHA1_HexDigest Lib "diCrHash" _
(ByVal sDigest As String, ByVal hContext As Long) As Long

Public Declare Function SHA1_Reset Lib "diCrHash" _
(ByVal hContext As Long) As Long

Public Declare Function SHA1_Hmac Lib "diCrHash" _
(ByVal sDigest As String, ByRef aByteArray As Byte, ByVal lngLength As Long, _
aKeyArray As Any, ByVal lngKeyLen As Long) As Long
Public Function returnSHA(invoer As String) As String
Dim iRet As Long
Dim sDigest As String
Dim hContext As Long

hContext = SHA1_Reset(hContext)
' Set context handle
hContext = SHA1_Init()

' Remember to check for an invalid handle
If hContext = 0 Then
MsgBox "Failed to set context"
Exit Function
End If

iRet = SHA1_AddString(hContext, invoer)
' Set sDigest to be 40 chars
sDigest = String(40, " ")
iRet = SHA1_HexDigest(sDigest, hContext)
returnSHA = sDigest
End Function

Sub maak_SHA()
Range("A1").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(0, 1).Value = returnSHA(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Wend
End Sub
 
Hallo Snabi,

bedankt voor je reactie, maar ik snap niet helemaal hoe dat met VBA werkt enzo :confused: , het werken met excel gaat prima de luxe, maar vba-editor en macro's... kun je het voor mij misschien wat begrijpelijker uitleggen?

Bedankt... :)
 
Hm.. sure.
1. Download en installeer het programma dat ik heb gegeven via de link.
2. Open Excel
3. Druk op Alt F11 (je ziet nu de VBA editor komen)
4. Klik met je rechter muistoets in de projectverkenner (in het niets) (mocht je geen projectverkenner zien aan je linker kant van je scherm dan kan je deze vinden via het menu Beeld)
5. Na het klikken met je rechter muistoets kies je voor Invoegen -> Module.
6. Kopieer de code die ik hierboven heb gegeven.
7. Plak de code in de module en sluit je VBA Editor af.
8. Zet een aantal dingen die gehasht moeten worden in de A kolom.
9. Druk op ALT F8 om de macro start scherm te openen. Kies hier voor de functie maak_SHA
10. Lees je resultaten af in de B kolom.
.
 
Bedankt Snabbi voor je duidelijke uitleg!!!

Ik heb het getest, en het werkt!:thumb:
Ik had nog wel een vraag, volgens mijn 'richtlijnen' moet mijn SHA1-hash 20 bytes lang moet zijn, en deze die ik nu krijg is 40 karakters lang...

Is daar eigenlijk een "richtlijn" in?
En kan ik jouw code bijvoorbeeld dan aanpassen?

Wel nogmaals HEEL erg bedankt voor het oplossen van mijn vraag! :) :thumb:
 
Blij dat het gelukt is. Ja je kan het gemakkelijk aanpassen naar andere waarden. Hoeveel bits je gebruikt is eigenlijk gewoon een afspraak die je maakt. Ik geloof dat ze zijn overgestapt naar het gebruik van 40 bits toen bekend werd dat SHA-1 vrij eenvoudig te kraken was. (Namelijk 2000 maal sneller dan men had verwacht)

Wat je moet doen is even de code aanpassen:
1. open Excel
2. ALT F11
3. Als het goed is zie je nu de code van wat je er zelf had ingezet.
4. Onder de eerste streep in die code zie je Public Function returnSHA(invoer As String) As String. Hierin moet je 1 regel veranderen en die zit in dit stuk:
iRet = SHA1_AddString(hContext, invoer)
' Set sDigest to be 40 chars
sDigest = String(40, " ")
iRet = SHA1_HexDigest(sDigest, hContext)
returnSHA = sDigest

Dat getal 40 bij die String is de lengte van je key. Als je daar 20 van maakt heb je dus een 20 bits hash
 
Blij dat het gelukt is. Ja je kan het gemakkelijk aanpassen naar andere waarden. Hoeveel bits je gebruikt is eigenlijk gewoon een afspraak die je maakt. Ik geloof dat ze zijn overgestapt naar het gebruik van 40 bits toen bekend werd dat SHA-1 vrij eenvoudig te kraken was. (Namelijk 2000 maal sneller dan men had verwacht)

Wat je moet doen is even de code aanpassen:
1. open Excel
2. ALT F11
3. Als het goed is zie je nu de code van wat je er zelf had ingezet.
4. Onder de eerste streep in die code zie je Public Function returnSHA(invoer As String) As String. Hierin moet je 1 regel veranderen en die zit in dit stuk:
iRet = SHA1_AddString(hContext, invoer)
' Set sDigest to be 40 chars
sDigest = String(40, " ")
iRet = SHA1_HexDigest(sDigest, hContext)
returnSHA = sDigest

Dat getal 40 bij die String is de lengte van je key. Als je daar 20 van maakt heb je dus een 20 bits hash
 
Hallo snabbi,

Ik heb een probleem, na een crash van mijn computer heb ik op een andere computer opnieuw mijn losse excel bestanden (Data, Hash en Hex) geplaatst en de onderstaande stappen uitgevoerd.
Ik loop nu tegen het volgende probleem aan, ik krijg na de alt/F8 de volgende melding:

Fout 53 tijdens uitvoering
Kan het volgende bestand niet vinden: diCrHash

Ik hoop dat je mij kunt helpen


Hm.. sure.
1. Download en installeer het programma dat ik heb gegeven via de link.
2. Open Excel
3. Druk op Alt F11 (je ziet nu de VBA editor komen)
4. Klik met je rechter muistoets in de projectverkenner (in het niets) (mocht je geen projectverkenner zien aan je linker kant van je scherm dan kan je deze vinden via het menu Beeld)
5. Na het klikken met je rechter muistoets kies je voor Invoegen -> Module.
6. Kopieer de code die ik hierboven heb gegeven.
7. Plak de code in de module en sluit je VBA Editor af.
8. Zet een aantal dingen die gehasht moeten worden in de A kolom.
9. Druk op ALT F8 om de macro start scherm te openen. Kies hier voor de functie maak_SHA
10. Lees je resultaten af in de B kolom.
 
Welkom op Helpmij.nl.:)

Gelieve een eigen topic aan te maken. Het is niet toegestaan om mee te liften in iemand zijn / haar topic. Daarbij is deze topic van 2005, dus al heel lang niet actueel meer.

Ik sluit deze daarom ook.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan