Hack Forums
[.NET] CRT Hashing Algorithm - Printable Version

+- Hack Forums (https://hackforums.net)
+-- Forum: Tech (https://hackforums.net/forumdisplay.php?fid=444)
+--- Forum: Coding (https://hackforums.net/forumdisplay.php?fid=151)
+---- Forum: Software Development (https://hackforums.net/forumdisplay.php?fid=118)
+---- Thread: [.NET] CRT Hashing Algorithm (/showthread.php?tid=4281897)

Pages: Pages 1 2


* - shawnw1104 - Aug 15, 2014

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.


* - zeroexp - Aug 15, 2014

(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.


* - dR1234 - Aug 19, 2014

What is the theme name pleaseee? Thanks you


* - Odus - Aug 20, 2014

(Aug 19, 2014 01:16 PM)dR1234 Wrote:  What is the theme name pleaseee? Thanks you

[Image: 4mYH8IR.png]

Pay attention boy!