New answers tagged

0

This scheme is similar to bitcoin HD wallets (bip32) which have now been in use for several years, and holding millions of dollars worth of funds, ie. they have come under attack, by determined and resourceful attackers, but to this day, they are still considered one of the most secure solutions, and all high security hardware wallets us that approach. So ...


5

Answering your question If an attacker have access to a copy of my users database table containing each salt and the related salted password, I can't understand how a CSPRNG would be more secure than a SHA12 hashed UUID. Can someone elaborate? I’m not sure if you only have read the question “Cryptographically Secure Pseudo-Random Number Generator in ...


1

First things first: Don't roll your own crypto. As for your current approach: This is basically a vigenere cipher which is inherently broken, provides not integrity protection and wouldn't even encrypt known / predictable bit positions (where the ASCII code is constant zero or one). As for an improved version: Use a well-known encryption algorithm (e.g. ...


1

I'm unsure about the proper steps to store the e-mail password on the user's computer. There are two ways I would recommend (in tandem if possible). First, some SMTP servers (like Google) allow you to create an Application Password. This password has limited access (for instance just for email) and can't be used to change the users password. ...


1

Being able to validate the characters of a password independently is almost equivalent to storing the password in cleartext. If the password consists of $n$ characters in an alphabet of size $a$, then verifying hashed passwords requires $a^n$ queries. (A query is an online lookup until your password database is leaked, and a hash calculation after that.) ...


1

Validating individual letters of a password reduces complexity of guessing that password by trying all possible variants, so I would suggest avoiding such a design. PCP (probabilistic checkable proofs) is a well-known case of validating just a small portion of the "witness" (defined in that context), with focus on algorithm complexity. Regarding "1st ...


3

I have considered your requirements to be these: it should be a function passphrase is so weak, that if hash of it is known (or big part of hash), then it can be brute forced. many passwords can be generated as output. There exists various kinds of key derivation functions, which derive cryptographic keys from other cryptographic keys or passwords. The ...


0

Here is another very simple scheme (not fully secure but it should be enough for your needs). Chose a strong password $pwd$. Let's say you want a password for the website $xyz$. Compute: $PWD = \text{AES}(pwd,xyz)$ where $pwd$ is the key for your encryption. $PWD$ can then be used as a password to access to the $xyz$ website. Should you want to have ...


3

You can just use a counter along with a key derivation function (https://en.wikipedia.org/wiki/Key_derivation_function) such as a hash, and do something such as: for(int i = 0; i < numberOfPasswordsToGenerate; i++){ aNewPassword = hash(MyWeakPassphrase + i); } The counter makes sure you get a new password, for each iteration of the loop, and they ...



Top 50 recent answers are included