[PHP +VB] Blowfish encryptie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 14:42
Ik ben bezig met een Visual Basic applicatie welke betaalgegevens uit een online database trekt. Deze betaalgegevens heb ik met PHP en de mcrypt-module met Blowfish gecodeerd.
Nu moet ik dus bij het ophalen van deze gegevens, deze weer terug kunnen coderen in VB, maar hoe?

Ik ben opzoek geweest naar software om in mijn VBapp te intregreren waarmee je Blowfisch kan coderen en decoderen. Eén van de weinige die ik vond en bruikbaar was, was CryptoSys (www.cryptosys.net).
Deze heeft diverse functies voor het en- en decoderen in onder andere Blowfish, en een aantal hashfuncties.
Dan nu het probleem; Er lijkt een verschil te zitten in de wijze van coderen tussen deze API en de mcrypt module. Ik krijg het namelijk op geen enkele manier voor elkaar om dezelfde ciphertext tevoorschijn te krijgen uit beide systemen met dezelfde key en IV. Het is dan dus ook onmogelijk om ciphertexten uit mcrypt terug te coderen met deze API.

Nu mijn vragen;
- Is het iemand wel eens gelukt in VB ciphertexten te decrypten welke door PHP+mcrypt waren gecodeerd? Welke cipher en modes heb je dan gebruikt?
- Kent iemand een andere API (of iets dergelijks) welke ik in VB kan gebruiken om deze ciphertexten te decoderen?
- Nog andere algemene tips of opmerkingen?

Ik kan lokaal ook wel PHP met mcrypt draaien welke door VB wordt aangeroepen wanneer er iets moet worden gedecodeerd, maar dan zou ik lokaal een PHP-script hebben staan met daarin de key's, en IV's, aangezien dit vaste waardes zijn. Plus dat ik het liever allemaal in 1 VB-project hou.

Edit:
Ik heb het momenteel voor elkaar dat een door mcrypt gecodeerde string juist wordt gedecodeerd door VB. Het probleem zat hem in de gebruikte mode, en de lengte van de string.
Voor de geïnteresseerden;
De lengte van een blowfish block is 8. De input moet daarom een veelvoud van 8 zijn (8, 16, 24, 32, etc) om deze te kunnen decoderen. Zowel mcrypt als Cryptosys (VB Api) vullen de plaintext automatisch aan naar de correcte lengte aan. Echter, ze doen dit beide met een ander karakter, waardoor uiteindelijk de input toch verschilt.
Toen ik zelf zorgde voor een input van genoeg karakters, ging het en- en decrypten perfect. Dit is echter in ECB mode, zonder gebruik van een IV. Waneer ik dit in CBC mode probeer lukt het wederom niet, waarschijnlijk door het gebruik van de IV. Ben momenteel nog aan het uitzoeken waar hier het verschil in zit.

Edit2;
Er is inderdaad een verschil in IV. CryptoSys wil deze graag in hexadecimale vorm hebben. Dit topic kan dicht, ik ben er helemaal uit...

[ Voor 29% gewijzigd door frickY op 27-09-2006 09:20 . Reden: Aanvulling. Typo's ]