看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 想透過輸入金鑰的輸入 或是 自製的亂數種子 產生一組不規則01序列 且此01序列可以每次都產生一樣的 想用在加密上 求解已在網路上找過資料 不過 找亂數種子都只有看到 srand(time(NULL)); 沒有找到 自製亂數種子教學文 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.197.174 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464186651.A.13A.html
MOONRAKER: 那叫虛擬亂數 不叫亂數種子 搜尋虛擬亂數產生器 05/25 22:36
好的google中
Schottky: VC? MSDN 找 CryptoGenRandom function 05/25 22:36
Schottky: Linux 的話用 /dev/urandom 05/25 22:37
感恩 研究中
MOONRAKER: 其實你給srand()相同的數字就可以保證接下來結果相同了 05/25 22:53
MOONRAKER: 還不一定要用到高檔的亂數產生器 05/25 22:53
MOONRAKER: 只要接著一直取亂數然後轉二進位就好 05/25 22:53
研究了好幾天原來是搜尋關鍵字打錯 另外 原來給srand()吃不同的值 會跑出不同的結果 程式已經寫出來了 太感謝你了 ※ 編輯: klly193746 (1.163.197.174), 05/25/2016 23:12:47
Caesar08: 如果你用rand與srand,那你換compiler之後會有問題 05/26 09:27
MOONRAKER: 咦這有隨compiler不同的嗎 o_O 05/26 10:28
uranusjr: 嗯標準沒有規定 rand 要用什麼演算法, 所以可能會不同 05/26 11:19
MOONRAKER: 起碼都還是亂的吧 我想得到頂多是整數寬度不同 05/26 15:51
MOONRAKER: 還是說給同一種子不一定會有相同結果 05/26 15:52
MOONRAKER: 如果這樣那就要把rand()換成自己寫的亂數產生器 05/26 15:53
MOONRAKER: 例如xorshift 或更簡單如IBM古早的 R *= pow(7,5)+k 05/26 15:55
Caesar08: 直接使用C++11裡面的<random>就沒這問題了 05/26 16:07
klly193746: 目前應該是使用在srand裡面加參數 另外在多一個參數是 05/30 03:17
klly193746: 略過前面幾個數字 05/30 03:17