-7
編輯:對不起,我錯了帖子,我會檢查一下論壇位置更好的下一次。我選擇了一個被接受的答案,我認爲這個問題是關閉的。感謝您的有益回覆和提示!隨機種子生成
原文: 今天我需要升級到新的IOTA錢包。它沒有隨機種子生成器,所以我構建了自己的並從NetBeans運行它。你能給我你的意見嗎?它必須是81個字符長,幷包含從A到Z和數字9.沒有別的。這是整個代碼。
這是否留下什麼不安全的?從慣例的角度來看,代碼是否更清晰?
class SeedGenerator {
/*
This is a program to randomize a seed for Iota wallet
*/
public static void main(String[] args) {
System.out.println("*****");
int seedLength = 81;
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ9"; //Only characters allowed in Iota seed are A-Z and number 9
char[] charArray = alphabet.toCharArray(); //Turn string into array of characters to be referenced by index
String[] seed = new String[seedLength];
System.out.print("Random wallet seed is: ");
for (int i = 0; i < seedLength; i++) {
Random newRandomNumber = new Random();
int seedIndex = newRandomNumber.nextInt(alphabet.length()); //This is an array of index numbers to pull from charArray
// System.out.print(seedIndex + " "); //Used for testing the random character index range
seed[i] += charArray[seedIndex];
System.out.print(charArray[seedIndex] + "");
}
System.out.println();
System.out.println("*****");
}
}
如果你的代碼是完整的,可行,你希望它審查,發佈在代碼審查來代替。 – Carcigenicate
也許你可以查看https://codereview.stackexchange.com/來查看你的代碼。我會說,把你自己的密碼原語作爲第一個項目保證是不安全的。例如,您使用的是隨機,而在https://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html中似乎存在一個加密性強的隨機數生成器。爲每個循環創建一個新的Random對象可能也不可取!您還會將種子打印到標準輸出,如果有人正在俯視您的肩膀,該標誌(如果敏感)可能會很糟糕。 (這是沒有看你的代碼。) –
也許看類似的問題在https://stackoverflow.com/questions/41107/how-to-generate-a-random-alpha-numeric-string?rq=1。 –