First - I very, very much appreciate the time taken to reply.
Please don’t take this the wrong way, but I’m certainly passed the point of knowing the difference between hashing and encryption
Also, I’m not interested in doing anything with TOTPs or OTPs in general. My example and reference was specifically to handle time, which would be used for the reasons I mentioned (logging, for one, as well as potentially a part of the encryption), and how it writes to memory / refreshes.
To that, I understand the flaws in the approach to the vending machine. This is planned for, with, in a perfect world, time being of assistance in doing this.
You asked for the goal, and it’s simply what I mentioned before. Server-side, should the validation pass, I plan to enable something when a URI is visited. If not, the included parameter is simply ignored. It has nothing to do with payments, or anything that could be mission critical production scenario for my super secret fortune 100 company. It’s simply privacy for myself and anyone else interested in the project (which will be open source, documented, etc).
To further your vending scenario, if the encrypted payload simply held the wallet ID, well, then obviously there would be a problem, as there’s no validation.
Because of this, the payload within the encryption was expected to include (for example) a timestamp, as well as a seed and salted hash of the current time, where, serverside, I could simply ignore payload that was from any day prior to the current server time, ignore any seed that has already been used for the same day, and validate the hash before enabling the piece on the site. I do not necessarily need to perform all of those checks, but, being able to handle them differently would be of interest.
As a general concept, this would mean a user could obtain a link, share it, and it would not work. The ‘goal’ would be to generate these URIs on-device.
Without time being involved, I would be limited in what types of validation could be done. Should the encryption be cracked, I would be limited to unique seeds and salted hashes, which would need to simply be against the seed. This is fine, but, having the timestamps would allow me to log when my device is being accessed, or at least attempted.
I hope the thought process here is enough. I wasn’t looking for anything other than what was in my initial post - if there’s been any creative ways to handle time in other projects, examples of background read NFC scans from iOS / Android devices, or an example on-device written URIs for NDEF sharing
As a final bit - I already have a pathway for the project that I’m confident with if there’s nothing in the above available. Just was asking to consolidate my thoughts, but not necessary, just an enhacement