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


CRT Hashing Algorithm - zeroexp - Jun 12, 2014

[Image: THjZpqW.png]

Hello community, i came out with something new today.. a hashing algorithm. Of course it may need a little bit more work so don't be hateful if you reply... After all , nothing's perfect. Let's get to it.


It took a lot of time for me to think how to make it irreversible and finally figured it out. In my opinion I think I did a pretty good job as the hash depends on a lot of different factors. 😁


I made a program for the hashing process AND a DLL so you can use it yourself . Let's start.


[Image: qOEcwZS.png]


[Image: nAahGlg.png]


[Image: xfUil99.png]




[Image: CzLdQY4.png]


[Image: jZiKyzy.png]






[Image: VmDEJJZ.png]


How does the app look






How to add the DLL to your app




Thanks for reading ! 👍 Leave a reply if you think something is wrong , have a problem or have a suggestion. I read everything because I'm still trying to learn... I'm a newbie in VB.NET :P


[Image: aY9eAYv.png]



* - +Haze - Jun 12, 2014

Looks nice, I would like to use this but, I don't see anyway in which it would be useful? Apart from hashing passwords.


* - ubbelol - Jun 12, 2014

Do you really need such a big thread and everything for just this? :p Either way, always good to see releases. But why are you returning an "object" when it's always a string? Also is there some documentation about this hash somewhere? I haven't heard of it before.


* - zeroexp - Jun 12, 2014

@Haze - I added you

@Ubbelol - Sorry about that object thingie :P You never heard of it because i just made it and posted it here...

Tried to do sth new so i can learn more. And, maybe someone finds this useful.


* - Zettabit - Jun 12, 2014

Is there any reason you used a Obfuscator on both of these downloads?

EDIT: This is also pretty insecure as I can already see a pattern.
EDIT2: I'll rephrase that a little, it's insecure with < 5 letters


* - tweety - Jun 12, 2014

Is this hash algorithm created by you or is it an existing algorithm?


* - zeroexp - Jun 12, 2014

@Tweety. - I created it ... I just chose a random 3 letter name because that's how most algorithms are called
@Zettabit - It's not really an obfuscator but i got used to do that every time even if i don't post a program. Well, i don't know , i will try to update this if i can and make it better but i have my final exams in a week.


* - Loladmin - Jun 12, 2014

I don't know why you did this:

Code
string[] strArray = new string[] {
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h",
      "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "v", "x", "y", "z",
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h",
      "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "v", "x", "y", "z",
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h",
      "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "v", "x", "y", "z",
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h",
      "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "v", "x", "y", "z",
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h",
      "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "v", "x", "y", "z",
      "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
      "r", "s", "t", "u", "v", "x", "y", "z"
     };

But it just seems unnecessary. You could've just created a string, because technically strings are character arrays.
Anyways, no offence, but it seems poorly coded. It looks like you spent more time on the GUI than the actual function itself.


* - zeroexp - Jun 13, 2014

As i said i am still a beginner and i did not know how to do that... I tried my best...


* - mcly - Jun 13, 2014

Would be cool if you added some information to this as of how this works, why you choose to code on this
What advantages it has over other hashing algorithms, etc..

I honestly think though that it has a way bigger collision ratio, is slower, and might be reversible..

Im not trying to be mean, but why did you create this if all other hashing methods are just better?

I see no point in someone using this, if other methods are just better...


* - zeroexp - Jun 13, 2014

Did it so i can learn more about this stuff. You learn a lot from practice so ... i just tried to do sth different from what i did before. ^_^ I also wanted some replies because i know HF has some of the best critics ever xD You're not being mean, i enjoy reading every reply.

Thank you.


* - TheBarret - Jun 13, 2014

Ehh....sorry mate this looks not that good.


* - ๖ۣۜXilluX - Jun 13, 2014

Well a hash has for example always 16, 32, or 64 char. Your hash does always have another length.


* - SIM-1456245 - Jun 13, 2014

(Jun 13, 2014 12:55 PM)๖ۣۜXilluX Wrote:  Well a hash has for example always 16, 32, or 64 char. Your hash does always have another length.

That's called a feature of the algorithm.


BTW The name CRT reminds me on an old CRT TV.


* - LordCoder - Jun 13, 2014

Your hashing function can be partially reversed. It isn't a perfect hashing function as it just converts and deletes some parts of the original string. But you can test it with the same kind of letter.

Hash of "a": bz791
Hash of "aa": bz791b91 (just added b91 lol)

This can cause a collision between 2 strings. And this hashing doesn't have the avalanche effect which is normally seen in SHA or MD5 as you see above.
Using Math.Round you just can make it "irreversible" but using a dictionary is most like an encoding.

EDIT: Found a collision with your hash.

Hash of "abcd": n2z71d41c7b91
Hash of "azcd": n2z71d41c7b91

Used a basic brute forcer I've just created: https://www.firedrive.com/file/B346C237C6BB9FEC
[img]http://s25.postimg.org/hk3qxhpv3/2014_06_14_00_14_43_2014_06_14_00_14_07_Windows.png[/img]