When testing the use of the table PK as a seed, padded with '0's the encrypted string is different but very similar. Because most of the characters in seed are the same. For example, for PK 5 and PK 6. It would still make it very difficult to crack.
I added another "twist" to this approach.
Instead of using the PK as a seed, I use the PK*369 (or any other number that I won't share with anybody :)).
The resulting number/seed then has more different characters than simply PK.
Example:
5*369=1845 - Seed "1845"
6*369=2214 - Seed "2214"
This way the Seed is even more difficult to guess, even if someone has the cipher() code.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham