Prompt end users for their password once and store it

Is there a way to prompt end users for their password once and store it in hedata. For example when the program is first launched a dialog box or input box pops up asking the user to set his/her own password. Then in subsequent opening of the program the user is then asked to enter the password he/she set in the first launch.

The justification for this is; if you create a hardware lock application on a usb drive and you happen to loose that usb drive any one who found the usb drive can access the data within. But if the password is set by the user and not the creator (as it is now in version 4.9) it makes it hard for a person who has found the usb to access the data. The reason why it should be stored in the hedata and not userpref because the "userpref " can be deleted and the password can be reset giving access to the data.

And if possible…the ability to use a password hint if forgotten and a reset password option.

No, .hedata is fixed and can’t be modified externally (nor internally because the publication runtime doesn’t have the code to create/modify HEDATA files, only the compiler HEBUILD.EXE has that code).
What about using registration keys instead of passwords?