import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
import java.util.Random;
import org.eclipse.jdt.annotation.NonNullByDefault;
// create the MD5 hashes
String ha1 = username + ":" + realm + ":" + password;
ha1 = calcMD5Hash(ha1);
- Random random = new Random();
+ Random random = new SecureRandom();
String cnonce = Integer.toHexString(random.nextInt());
ncCounter = (ncCounter > 125) ? 1 : ++ncCounter;
String nc = String.format("%08X", ncCounter); // 8 digit hex number
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Base64;
}
String createNonce() {
- Random nonce = new Random();
+ Random nonce = new SecureRandom();
return "" + nonce.nextInt();
}
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
import java.security.spec.InvalidKeySpecException;
import java.util.Base64;
import java.util.Random;
* @return nonce
*/
static String createClientNonce() {
- Random generator = new Random();
+ Random generator = new SecureRandom();
// Randomize the random generator
byte[] randomizeArray = new byte[1024];
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
@NonNullByDefault
public class CloudUtil {
- private static final Random RANDOM = new Random();
+ private static final Random RANDOM = new SecureRandom();
/**
* Saves the Xiaomi cloud device info with tokens to file
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
import java.util.List;
import java.util.Optional;
import java.util.Random;
private @NonNullByDefault({}) MillheatAccountConfiguration config;
private static String getRandomString(final int sizeOfRandomString) {
- final Random random = new Random();
+ final Random random = new SecureRandom();
final StringBuilder sb = new StringBuilder(sizeOfRandomString);
for (int i = 0; i < sizeOfRandomString; ++i) {
sb.append(ALLOWED_NONCE_CHARACTERS.charAt(random.nextInt(ALLOWED_NONCE_CHARACTERS_LENGTH)));
package org.openhab.binding.mybmw.internal.utils;
import java.lang.reflect.Type;
+import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.time.ZoneId;
public static String getRandomString(int size) {
int leftLimit = 97; // letter 'a'
int rightLimit = 122; // letter 'z'
- Random random = new Random();
+ Random random = new SecureRandom();
String generatedString = random.ints(leftLimit, rightLimit + 1).limit(size)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
+import java.security.SecureRandom;
import java.util.Random;
import org.eclipse.jdt.annotation.NonNullByDefault;
} catch (Exception e) {
throw new IOException("General encryption failure", e);
}
- this.rand = new Random();
+ this.rand = new SecureRandom();
this.idS = 0;
this.idR = 0;
this.rollingCounter = 0;