Using Argon2 in Lucee CFML

A couple of months ago I wrote about password hashing in CFML (if you haven’t read that, I would suggest reading it before reading this) and in the post, I mentioned that Argon2 as being the currently recommended algorithm for password hashing but that, at the time of writing, neither Adobe ColdFusion or Lucee natively supported the Argon2 algorithm. I submitted an enhancement request to Lucee via their JIRA ticket system and at the end of August, it was reported on the ticket that it had been implemented and support was available in build 5.3.8.43 or higher. Currently, this build is only available on the SNAPSHOT branch, but it is available to download and use if you want it, so I thought I would give it a try.

Read More

Password Hashing in CFML

As we all know, or at least should know, if you are storing passwords in a database, they should only ever be stored as hashes and NEVER as plain text or using reversible encryption.

What is hashing?

By hashing the password, you are not storing the original password, only a calculated representation of the password, that given you know certain information about how the hash of the password was created, you can recreate the same hash from the password and compare the stored version to the newly hashed version for verification.

Read More

Looping over dates in CFML

A question came up on the CFML Slack a couple of days ago where someone was asking about looping over a date range, e.g. from 1st August 2018 to today. He suggested he was going to “do it the old fashioned way using DateDiffs and DateAdds” so he could do it with “regular numbers”. In CFML, however, looping over dates is possible, like this:

Read More

Looping over arrays in Lucee CFML

I’ve been back to doing some coding in CFML this week and working on a project that has been worked on by several different people and I happened to notice several different ways had been used to loop over arrays in various different parts of the code, one of which I must admit I had never actually seen before. I thought I would look into all the ways of looping over arrays in Lucee CFML and see how many I could find.

Read More