generateNextDeterministicStr static method
Implementation
static String generateNextDeterministicStr(List<int> salt, int posStart,
int length, RandomClientMode mode, bool nonleadzero) {
List<int> ibuf = salt; //Coder.getBytesSimple(salt );
int iLen = ibuf.length;
int seed = 0;
for (int i = 0; i < iLen; i++) {
seed = (seed ^ ibuf[i]);
}
StringBuffer buffer = new StringBuffer();
String characters = "";
switch (mode) {
case RandomClientMode.ALPHA:
characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case RandomClientMode.ALPHANUMERIC:
characters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
break;
case RandomClientMode.NUMERIC:
characters = "1234567890";
break;
}
int charactersLength = characters.length;
for (int i = 0; i < length; i++) {
int index =
((salt[(posStart + i) % salt.length] ^ (seed + (posStart + i))) %
charactersLength);
int ch = characters.codeUnitAt(index);
if (nonleadzero && (ch == '0'.codeUnitAt(0))) {
index =
((salt[(posStart + i) % salt.length] ^ (seed * (posStart + i))) %
(charactersLength - 1));
}
buffer.write(String.fromCharCode(characters.codeUnitAt(index)));
}
return buffer.toString();
}