關於密碼安全問題

2021-07-08 13:42:33 字數 2448 閱讀 4121

最近兩天,朋友請教我乙個挺有意思的密碼安全的問題,由於感覺思路不是太難,於是我就沒有在第一時間內將這道題做一下,只是給他說了一下思路,然而這道題的確有點難度,他一連兩天都沒有按照我的思路做出來,於是我就自己在他給的**基礎上做了改動,這道題頗有意思,很值得回味。

題如下:

密碼

【問題描述】網上流傳一句話:」常在網上飄啊,哪能不挨刀啊~」。其實要想能安安心心地上網其實也不難,學點安全知識就可以。 首先,我們就要設定乙個安全的密碼。那什麼樣的密碼才叫安全的呢?一般來說乙個比較安全的密碼至少應該滿足下面兩個條件:

(1).密碼長度大於等於8,且不要超過16。

(2).密碼中的字元應該來自下面「字元類別」中四組中的至少三組。

這四個字元類別分別為:

1.大寫字母:a,b,c…z;

2.小寫字母:a,b,c…z;

3.數字:0,1,2…9;

4.特殊符號:~,!,@,#,$,%,^;

給你乙個密碼,你的任務就是判斷它是不是乙個安全的密碼。

【資料輸入】輸入資料有多組,對於每一組輸入第一行包含乙個數m,接下有m行,每行乙個密碼(長度最大可能為50),密碼僅包括上面的四類字元輸入0退出。

【資料輸出】對於每個測試例項,判斷這個密碼是不是乙個安全的密碼,是的話輸出yes,否則輸出no。

【樣例輸入】

3 a1b2c3d4

linle@acm

^~^@^@!%

0

#include

int main()

; scanf("%d",&i);

for (; jscanf("%s",mima[j]);

}scanf("%d",&f);

if (f==0)//輸入0即可結束輸入階段????不對,這裡有問題……

else

if (mima[j][k]>='a'&&mima[j][k]<='z')

else

if (mima[j][k]>='a'&&mima[j][k]<='z')

else

if (mima[j][k]=='~'||mima[j][k]=='!'||mima[j][k]=='@'||mima[j][k]=='#'||mima[j][k]=='$'||mima[j][k]=='%'||mima[j][k]=='^')

else

if (mima[j][k]=='\0')

}h[j]=m+n+x+y;

if (h[j]>=3&&c>=8&&c<=16)

else}}

return

0;}

經過做這道題,我彌補了乙個自己的知識漏洞,曾經我以為char型的不能用來輸入輸出數字,可是當我去細看ascii表時,發現0~9這十個數字也可以用char型表示出來,在表中有對應的ascii值,這的確是意外收穫,這樣,就可以用char型來表示混合的資料了,真是太好了,以後再遇見此類問題我一定可以少糾結很長時間了……^_^

真是萬幸,在我最後的複查階段,發現了乙個問題,我的**並不符合我前面所提到的第五點細節問題,它不是輸入0才結束輸入,只是輸入0後可以執行後邊的判斷,而不輸入0時就直接結束了程式,這是錯誤的,不應該用if那樣子做,經過我的思考,感覺要用用do...while...語句了……雖說這是我第一次用,但是感覺還是用它是最合適的了。

更正後**如下:

#include

int main()

; scanf("%d",&i);

for (; jscanf("%s",mima[j]);}do

//先做一次輸入

while (f!=0);//符合則接著輸入,直到輸入的不符合時才結束輸入環節

for (j=0; j0,n=0,x=0,y=0,c=0;

for (k=0; k<51; k++)

else

if (mima[j][k]>='a'&&mima[j][k]<='z')

else

if (mima[j][k]>='a'&&mima[j][k]<='z')

else

if (mima[j][k]=='~'||mima[j][k]=='!'||mima[j][k]=='@'||mima[j][k]=='#'||mima[j][k]=='$'||mima[j][k]=='%'||mima[j][k]=='^')

else

if (mima[j][k]=='\0')

}h[j]=m+n+x+y;//大於等於3則有可能為安全密碼

if (h[j]>=3&&c>=8&&c<=16)//並且字元在8~16個的為真正的安全密碼

else

}return

0;}

至此,這道題完全結束了,最起碼我這麼認為,細節問題我也都考略到了,希望沒什麼新的細節沒有注意到了,編**的需要120分的細心呀!!!

delphi關於執行緒安全問題

tthread 提供了幾種同步的方法 tthread class protected procedure synchronize method tthreadmethod overload 在繼承中呼叫同步 public class procedure synchronize athread tth...

關於Dictionary的執行緒安全問題

c dictionary 為引用型別,在多執行緒的 中,如果在單執行緒的意義上存在著add和foreach的順序結構,執行緒數量越多就越容易出現異常 error system.invalidoperationexception collection was modified enumeration ...

ActiveX 安全問題

工作中寫了乙個mfc activex,測試的時候,發現ie6和ie8修改了安全設定後能夠正常執行,ie7和別的瀏覽器則始終無法正常執行,經過多方查詢,發現缺少一些安全資訊註冊,新增下列 後能夠正常執行了。首先定義三個函式 然後在stdapi dllregisterserver void 和stdap...