fix: eliminate division on crypto random in getSafeRandomFloat

This commit is contained in:
lockbitchat
2025-10-20 01:10:25 -04:00
parent a7a5861e0a
commit 7604381584
3 changed files with 11 additions and 12 deletions

View File

@@ -4511,18 +4511,18 @@ this._secureLog('info', '🔒 Enhanced Mutex system fully initialized and valida
return min + randomValue;
}
getSafeRandomFloat(minFloat, maxFloat, scale = 1000) {
getSafeRandomFloat(minFloat, maxFloat, steps = 1000) {
if (typeof minFloat !== 'number' || typeof maxFloat !== 'number') {
throw new Error('getSafeRandomFloat requires numeric min and max');
}
if (minFloat >= maxFloat) {
throw new Error('minFloat must be less than maxFloat');
}
const randomIndex = this.getSafeRandomInt(0, steps);
const minInt = Math.round(minFloat * scale);
const maxInt = Math.round(maxFloat * scale);
const intVal = this.getSafeRandomInt(minInt, maxInt);
return intVal / scale;
const step = (maxFloat - minFloat) / steps;
return minFloat + (randomIndex * step);
}
generateFingerprintMask() {