Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

.NET 

CRT Hashing Algorithm

That is the most beautiful GUI i have ever seen :)

Just my two-cents is that this is a good starting point, but needs major improvements (if not rewritten).

You should be processing things in a fixed ammount. Lets say in 64 bytes at a time. From there create 4
16 byte arrays from that 64 chunk and do some mixing (aka. diffusion). Place that into a for() and do 4 rotations. Every time make sure its not hashing the same thing.
example:
if we have A,B,C,D. We will loop 4 times so every part depends on the rest of the blocks. A = B, B = C, C = D, D = A. or something like that. The point being is that you wanna be dependent on EVERY byte. using << and >> are handy but used incorrectly will overflow things. do, String -> Byte[] -> convert to Int[] to use << or >>.

XoR comes in handy. Not sure how to do it in vb.net. C# its ^. Read up on XoR first because its good to know how it works.
The output of the hash function will be 512 bits (512 / 8)=64 bytes long.
Having a Avalanche Effect that is effective is hard to do. Your best bet is to look at a function like MD5. Use Bouncy Castle Library for source if need be.
Create a function that creates a key for the current block (i would use RC5 since its nice and patent free. just modify it a bit).

Best thing you can honestly do is study current hashing algorithm (skein/tiger/RIPEMD/Whirlpool/etc). Its the best way to see how they do it.

Just a piece of adive. Buffer.BlockCopy() is your best friend ;)

...
Shawn W.
We cannot solve our problems with the same thinking we used when we created them.

Albert Einstein
(Aug 15, 2014 09:33 AM)shawnw1104 Wrote:  That is the most beautiful GUI i have ever seen :)

Just my two-cents is that this is a good starting point, but needs major improvements (if not rewritten).

You should be processing things in a fixed ammount. Lets say in 64 bytes at a time. From there create 4
16 byte arrays from that 64 chunk and do some mixing (aka. diffusion). Place that into a for() and do 4 rotations. Every time make sure its not hashing the same thing.
example:
if we have A,B,C,D. We will loop 4 times so every part depends on the rest of the blocks. A = B, B = C, C = D, D = A. or something like that. The point being is that you wanna be dependent on EVERY byte. using << and >> are handy but used incorrectly will overflow things. do, String -> Byte[] -> convert to Int[] to use << or >>.

XoR comes in handy. Not sure how to do it in vb.net. C# its ^. Read up on XoR first because its good to know how it works.
The output of the hash function will be 512 bits (512 / 8)=64 bytes long.
Having a Avalanche Effect that is effective is hard to do. Your best bet is to look at a function like MD5. Use Bouncy Castle Library for source if need be.
Create a function that creates a key for the current block (i would use RC5 since its nice and patent free. just modify it a bit).

Best thing you can honestly do is study current hashing algorithm (skein/tiger/RIPEMD/Whirlpool/etc). Its the best way to see how they do it.

Just a piece of adive. Buffer.BlockCopy() is your best friend ;)

...
Shawn W.

Lol this thread is pretty old. Now i got better at VB.NET , i'll give it a try later. Imma actually try in the future to make one again but way better.

Thanks for the reply. People helped me a lot understanding a hashing algorithm.
What is the theme name pleaseee? Thanks you
(Aug 19, 2014 01:16 PM)dR1234 Wrote:  What is the theme name pleaseee? Thanks you

[Image: 4mYH8IR.png]

Pay attention boy!


Possibly Related Threads...
Thread / Author Replies Views Last Post
by nucleo_type09Apr 15, 2024 08:30 AM 4 200 Apr 15, 2024 08:30 AM
Last Post: nucleo_type09
[C] by leetAug 16, 2022 11:36 AM 7 350 Aug 16, 2022 11:36 AM
Last Post: Sajuuk
[Python] by mawrekJun 18, 2018 05:16 AM 6 189 Jun 18, 2018 05:16 AM
Last Post: LSDoom