怎讓設置一個14位自然數密碼,儘可能不被無意中猜中?

下了個APP,表面是個普通計算器,輸入特定數字後,會顯示自己保存的秘密圖片和文件。怎麼盡量避免熊孩子使用這個計算器時剛按到這個數字或答案是這個數字?

註:小於15位,且不得以0開頭的自然數。不含字母、符號、小數點。


使用隨機數生成器產生隨機數,如果不滿意就重來,直到生成一個滿意的數為止。


【不宜公開討論的政治內容】導致被建議修改。

原文地址:怎讓設置一個14位自然數密碼,儘可能不被無意中猜中?


兩個大質數相乘


查質數表比較好。

另外,這個方法其實一點都不保險(笑)


我覺得吧,上兩重鎖


如果說安全性,前面回答的都很好,當然隨機數是最安全的了,不過考慮到容易記憶,而且不需要工具的問題,有個簡單的辦法,就是想個數列生成函數,

比如斐波納切數列,f(n)=f(n-1)+f(n-2), 11235813213455,當然你可以使用不同的歩長,

或者多階等差數列,f(n)=f(n-1)+n-1,124711162239,

當然你可以用更複雜的函數來生成,只要能記得函數方法就可以了。


現在題主是只關心了如何設置14位密碼而不關心記憶,這樣的話直接用隨機函數生成一個隨機數會是一個比較好的方法,設置了密碼以後把這14位隨機數記錄在手機的記事本等地方,防範小孩子就完全足夠了…但是如果你要防的人還包括小孩子他媽 或者你的小孩是一個像柯南一樣富有好奇心的小孩那估計還是不夠滴~

所以,為了保證能夠生成14位的密碼自己又能憑大腦記憶~最好是使用一些密碼演算法啦

從古典密碼說起…

古典密碼主要分為代換和置換兩大類~具體定義什麼的百度就有,現在咱們直接開始使用幾個最簡單的加密演算法

1:使用單表代換的加法演算法(名字分類什麼的那麼長然而並沒有什麼卵用有木有啊~其實就是移位啊)比如現在我想到兩個人的生日19310213和19620521,總共16位了,截斷最後一位不要,把它們放在一起變成了19310211962052,現在就有初始密碼了是吧,這個你肯定是能記住的~然後選一個你喜歡的數字進行移位,比如當我們選3的時候就成了著名的凱撒密碼,這時把所有數字往後移三位,最後三位補齊前三位,就成了10211962052193

這樣就大功告成啦~是不是簡單又保密

同樣用這種方法你可以選取其他紀念日,截取任意兩位,移任意多位,這樣的話就算知道你是使用這種方法加密的也很難猜到密碼喲

涉及到乘法和取模的演算法就不推薦了哈~專業學生算起來都頭痛啊~

還可以推薦一種簡單的演算法,就是想一句英文,然後把子字母變成數字就好啦

比如說a就代表1,b代表2,以此類推。當我選了一句just do it之後,當我對它進行轉換後就成了10211920415920(≧?≦)怎麼樣,是不是剛好14位呀,而且我保證這種組合直接猜是猜不到的,暴力破解就另說啦…這種方法困難之處就在於選擇什麼英語句子剛好換算成14位,我試了三次找到了這句,找不到何時的也可以,比如tomorrow 對應的是2015131518181523,有18位了,直接按照個人喜好截斷扔掉其中兩位就好啦^_^

其實做到以上這樣,一般來說密碼就不會被破解了,當然如果你還有更高的要求,咱們就試試現代密碼的單向函數~說了這麼多,感覺這逼要裝不下去了,…Y(^_^)Y直接來個簡單粗暴的,下個使用MD5演算法加密之類的加密軟體,直接輸入一串任意數字(當然是好記的,比如某人生日之類的),軟體就替你進行多輪迭代~算出來的密碼直接取前14位~只要每次都輸入同一個生日,計算出來的密碼肯定都是一樣的!由於你只取了前14位,所有逆向解密軟體都歇菜了啦…保密性棒棒嗒^_^

密碼學內容可多啦,要複雜的話可以弄得很複雜,本人學得不好就隨便提了幾個比較適合題主用得。學了很久了,有些表述可能不是很準確,學密碼的大神們請手下留情呀~有問題歡迎討論,周末愉快\(^o^)/


這個問題的安全性並不在17位數,而在於你那些小圖圖究竟儲存在哪怎麼儲存的


14位的數串。。。

只要不是什麼11111111111111,22222222222222 這類相同數字組成的密碼。。

我想很難被無意間猜中吧。。。。。

要知道你就算是拿起筆信手拈來的一個14位數串。。。 要被無意中猜到也幾乎是不可能的。。。 如果真能被熊孩子猜到。。。

那你的孩子可以去買彩票了。。。

從暴力破解的角度來說。。

14位純數字已經很大了。。。。。。

如果說執意要盡量避免。。。

那就是不要使用你孩子,你家人的生日,身份證,手機號,工作卡號,學號等數串,那這14位數串可以說是安全的。

另外就是,,如果是數字九宮格,那麼外圍的數字相對中間來說按到的次數要少。你可以體會下,一般我們在鍵盤上亂按的時候,離手指近的鍵位一般按得多一些。這裡也一樣,所以可以故意多設置一些靠邊緣的數字。

其實,,,以概率的角度來說,,,題主你想多了,,,,,你閉起眼睛胡亂按下14個數字,我覺得其實已經足夠了。。。。。

退一百萬步。。。。。如果這樣你的孩子還能輕易猜到。。那我只能說,,,絕對是你親生的啊!!!!!!!!!!!!!!!!!!!


不知道答主的計算器app樣式是什麼樣的,按一般計算器的話,零這個數一般是在九宮格之外的,也就是說,在亂按的時候,零這個數被按到的概率會小一些,所以在設置的時候穿插幾個零會好一些。


自己找個少見的七言絕句選兩句,對著撥號器看字母對應的數字是什麼。

你只要記住是哪首詩就好了。


Math.random();


這個不靠譜嘛,隨機性很強,你還不如把密碼設置成希臘字母,估計累死熊孩子都破解不了


找十個乒乓球,寫上0~9十個數字,放到小盒子里,每次摸一個,記下,放回。摸十四次,得十四個數字。

完全隨機,不可能被輕易猜到


3.1415926535897


14位…我就問你11位手機號記得幾個…


首先排除連續的和重複數字組成的密碼,被按到的可能性非常大。

如果是隨手亂按的一堆數字,其實被熊孩子按到的可能性非常非常小了,但題主貌似不放心。

那我覺得可以結合一下,利用某強迫症原理,設置一段數字,比如

11111311111111

13111111115111

12121218121212

12345674901234

98765123456709

小孩子喜歡連續按某一個數字,或者順序,倒序按,變動其中一個數字給人的感覺非常彆扭,個人認為相比較隨機數字,更不容易被按到,自己也方便記住。僅供參考。


1、想一句話。要求:英文、最好超過7個詞。例如"The first step is as good as half over."

2、依次取句子中每個單詞的首字母,轉化成相應的數字(a-z分別對應1-26)。對上面的句子來說,就是20,6,19,9,1,7,1,8,15。

3、把這一串數字連起來:206199171815。這是一個12位的密碼。用更長的句子可以得到更長的密碼。

好記又難猜。(當然你得把這句話記熟了……


17!-1怎麼樣?


你可以這樣,隨意亂按14位數字,然後找幾個熊孩子按著玩。。。。。。


推薦閱讀:

如何設置具有強度的密碼?

TAG:數學 | 網路安全 | 密碼 | 個人信息安全 | 密碼學 |