Here’s what’s changed
💡 For some definitions, click the Gray Buttons alongside 👉
The Salt Seed column regularly generates a Salt 17 characters long. To prevent the doc slowing down unnecessarily, we only run this if a row is unencrypted and the Password field isNotBlank().
When the user clicks Encrypt, we copy the value from Salt Seed to its permanent location, another column called Salt.
A new column Password (Hashed, Salted) looks out for this event and when Salt isNotBlank(), it’ll perform the following operation:
Concatenate() the user’s Password with the Salt
💡 Here’s an example of the output of SHA512()
Think of it as if the user created a 128 character-long password
538872331507039598ddb1d934dd9d2e4c77e765df449db1a7b616a1727e02c40633f8801105b59a46db00e312656ca46a450ed66f36a0540e485119d4826d1d
Our column Password (conv to numbers) needs to read this value and split the string into individual characters, it then converts them into numbers using . The rest of the process is identical to . Importantly, to Decrypt, we use the cached Salt, and do not regenerate a new salt until the next round of Encryption.