decrypt function
dynamic
decrypt(
- dynamic value1,
- dynamic value2
XOR decrypt; returns an empty string directly for an empty password
Implementation
dynamic decrypt(dynamic value1, dynamic value2) {
final str = value1.toString();
final pwd = value2.toString();
if (pwd.isEmpty) return '';
final k = pwd.length;
var j = 0;
final buf = StringBuffer();
for (var i = 0; i < str.length ~/ 2; i++) {
final hex = str.substring(i * 2, i * 2 + 2);
final b = int.parse(hex, radix: 16);
final p = pwd.codeUnitAt(j) & 0xFF;
buf.write(String.fromCharCode(b ^ p));
j = (j + 1) % k;
}
return buf.toString();
}