Password Class
Handles password parsing for Caesar and Vigenere.
Password
is a Builder with a Fluent Interface providing the following methods:
new Password(passwd).to.shift(),
new Password(passwd).to.shiftArray(),
new Password(passwd).forDecryption.to.shift(),
new Password(passwd).forDecryption.to.shiftArray()
} (for all valid passwd)
Valid password formats:
new Password( 1 ).to.shift() // returns: 1
new Password('1' ).to.shift() // returns: 1
new Password('-1').to.shift() // returns: -1
new Password('b' ).to.shift() // returns: 1
new Password('bc').to.shift() // returns: 1
new Password( 1 ).to.shiftArray() // returns: [1]
new Password([1, 2]).to.shiftArray() // returns: [1, 2]
new Password('1, 2').to.shiftArray() // returns: [1, 2]
new Password('1,-2').to.shiftArray() // returns: [1, -2]
new Password('bc' ).to.shiftArray() // returns: [1, 2]