On 20 Mar 2013 10:43, John Mathew wrote:
I wrote a RPG program which validates special characters, Numeric,
lower and upper case.
If validations fails program returns back 1.
Now I have a different problem; when the password is passed to the
program by default the password values are changing to upper case
though I gave it in lower case.
Example : If my password is john1, when the program is called
through CHGPWD the password values are just converting to upper case
can some please suggest. why this is happening, do I need to setup
For prior mention of "special characters" I had inferred QPWDLVL of
two or three was already in effect. However...
If the QPWDLVL is less than 2, then the passwords are always
upper-case, irrespective of what is typed; even if the equivalent
mixed-case password had a hash generated for compatibility reasons, to
enable transition to passphrases. AFaIK that would explain the effect
seen; i.e. I believe the CHGPWD prompted interface presents a 128-byte
/hidden/ input field for the new password [where the value remains
mixed-case], rather than the 10-byte hidden input field [where the value
is upper-cased; but not by the display file field attributes].
IBM i 7.1 Information Center > Security > Security reference > Security
system values > System values that apply to passwords
_i Password Level (QPWDLVL) i_
"The password level of the system can be set to allow for user profile
passwords from 1-10 characters or to allow for user profile passwords
from 1-128 characters.
The password level can be set to allow a passphrase as the password
value. The term passphrase is sometimes used in the computer industry to
describe a password value which can be very long and has few, if any,
restrictions on the characters used in the password value. Blanks can be
used between letters in a passphrase, which allows you to have a
password value that is a sentence or sentence fragment. The only
restrictions on a passphrase are that it cannot start with an asterisk
(*) and trailing blanks will be removed. Before changing the password
level of your system, review the section Planning password level changes.
Note: This system value is a restricted value. See Security system
values for details on how to restrict changes to security system values
and a complete list of the restricted system values.
Table 1. Possible values for the QPWDLVL system value:
0 The system supports user profile passwords with a length of 1-10
characters. The allowable characters are A-Z, 0-9 and characters $, @, #
and underline. ...
1 QPWDLVL 1 is the equivalent support of QPWDLVL 0 with the following
IBM i 7.1 Information Center -> Security -> Security reference ->
Designing security -> Planning password level changes
_i Considerations for changing QPWDLVL from 0 or 1 to 2 i_
"Password level 2 introduces the use of case-sensitive passwords up to
128 characters in length (also called passphrases) and provides the
maximum ability to revert back to QPWDLVL 0 or 1.
Regardless of the password level of the system, password level 2 and 3
passwords are created whenever a password is changed or a user signs on
to the system. Having a level 2 and 3 password created while the system
is still at password level 0 or 1 helps prepare for the change to
password level 2 or 3.
Before changing QPWDLVL to 2, the system administrator should use the
PRTUSRPRF TYPE(*PWDLVL) command to locate all of the user profiles that
do not have a password that is usable at password level 2.