0

For reference I only know python so that's what I've been working with.

I've recently been looking into making my own hashing algorithm to further my understanding on how they work, I'm not looking into creating the most cryptographically secure hashing algorithm, just something that is a bit more secure than validating passwds in plain-text.(in other words I don't care if this algorithm has copious amounts of collisions.

From what I understand about hash functions is that they use ???? to obfuscate the input password. Where I'm getting caught up is how the function takes a user input, like "password1" and translates that into numbers the system can work with, then, what exact methods do they use to obfuscate them?

Apologies if this is a stupid question but I cant find any material on this that isn't way beyond my understanding or basic enough where they gloss over what happens inside the hash algorithm.

NULL
  • 1
  • 2
  • 1
    Hash functions have nothing to do with obfuscation (obfuscation is always a two-way function, while hash functions are by definition one-way functions). But if you're interested in exploring this space, you're going to need more than a simple Stack Overflow answer. I highly recommend the following course. One of the hardest I've taken, but very worthwhile. This will start you at the beginning. https://www.coursera.org/learn/crypto When you're done, you still won't be ready to design your own algorithm, but you'll be ready to read the things you need to build some toys. – Rob Napier Jul 06 '20 at 02:30
  • If you want to dive in without an instructor, the things you need to study for this question are the Merkle-Damgård construction and the Feistel network. You won't be able to avoid digging into some of the math. As you go along and have questions, you'll be better served by crypto.stackexchange.com unless your question is specifically about the programming aspect. – Rob Napier Jul 06 '20 at 02:35
  • If `s` is a `str` then `s.encode("utf-8")` "converts" it to a `bytes` object. If `b` is a `bytes` object that is a utf-8-encoded `str` then `str(b, "utf-8")` gets the `str` back again. Thus `s == str(s.encode("utf-8"), "utf-8")`. – President James K. Polk Jul 07 '20 at 00:06
  • Glad to see more fans of what of what professor Dan Boneh is doing around here. :) – Marek Puchalski Jul 07 '20 at 06:11

0 Answers0