加密和解密的問題,着急啊


我采用的是DES算法,進行的是64位編碼,每次加密8位,現在的情況是能夠加密,但是不能完全正確解密,就是說解密的幾率只有百分之六十左右,這究竟是怎么回事?請問哪位大俠做過這方面的題目,提供一點意見。簡直是茫然啊

18 个解决方案

#1


8 bytes not 8 bit

#2


記得是每次加密56位,8位用作校驗。

#3


8 bytes to 8 bytes. 你怎么每次加密8位了?

明文->加密算法->密文          明文->加密算法->密文
        ^                            ^
        |                            |
       密鑰                         密鑰

#4


明文->加密算法->密文  密文->加密算法->密文
        ^                          ^
        ¦                          ¦
      密鑰                       密鑰 

會出問題嗎?

#5


怎么這個樣子呀~~~~~~過分~

#6


我給你一個加密用的源程序(DES和3DES),還有測試源程序
EMAIL給我,xujianlong1980@163.com

#7


to james_razor(蹬三輪的):我寫錯了,是一次對八個字節進行加密;
to scklotz(曉春):按照你的做法我試了,沒有問題,只是兩次得到的密文是不一樣的。但是我跟蹤下去發現如果用密鑰進行兩次加密,得到的密文卻是一樣的,這是怎么回事?加密有誤?還是本該有這樣的結果?請關照。
to xjl1980_81(阿龍):我已經發郵件給你,請mail一個給我,多謝。

#8


to xjl1980_81(阿龍):收到我的郵件了嗎?如果沒有收到,請按這個油箱發給我,多謝關照一下。我的油箱是:jeffery_chen@263.net     

#9


解密的幾率只有百分之六十左右是怎么得出來的?

#10


TO plainchow(清風):我隨機的輸入一些字符串,按照其正確解密的結果進行估計的。比如說,
我輸入“AAA”進行加密,然后再解密,得到“AAA”是正確的,但是可能我輸入“BBB”進行加密,解密后卻是一堆亂碼,總的來說,十個字符串中,能正確解密的也就五、六而已,簡直覺得有點荒唐……

#11


把你加密明文和密文都貼出來看看,用十六進制格式。
如:
明文:"superman" = "\x73\x75\x70\x65\x72\x6D\x61\x6E"
密鑰:"12345678" = "\x31\x32\x33\x34\x35\x36\x37\x38"
密文:"\xCA\xD1\xDC\xDD\x9B\x85\x3E\xF5"

#12


是不是你的s-box的選擇有問題?

#13


是標准des吧?不是的話就沒得說了。

#14


wangwang78@sina.com
給我一份加密的程序,謝謝!

#15


to james_razor(蹬三輪的):由於我做程序的機子和上網的機子是斷開的,所以我沒有辦法把明文和密文貼出來,你能估計一下嗎?大概會是在什么地方出現這種看來很荒唐的情況?
另外還有:我用的那個源代碼是以前是用C語言寫的,我把它移植到了VC環境里,並且把它集成到一個類里作成COM接口,其中有一些C語言的變量,如:static 和 rigster 類型的變量我也是照搬到C++里去了,會不會是在這里出現了問題?如果是的話?我該怎么處理移植中遇到的這些問題? (有一點可以肯定的是:COM接口傳遞參數是沒有問題的,我跟蹤調試過) 多謝關注!

#16


不好說,如果以前c的程序沒問題,那么肯定是你移植到com時出了問題。

#17


to james_razor(蹬三輪的):我擔心的是從C移植的時候是 static 和 rigster類型的移植帶來的負面影響,因為我把static類型放在接口類里,編譯時可以,但是在連接時就報錯了,是LINK2001的錯誤,“無法解決的外部指針”,於是我就把static 移到了接口類的外面,仍然放在同一個頭文件里面,這樣可以順利的通過編譯連接,誰知道卻得到如此荒唐的結果,……實在是意料之外

#18


C++類中static的含義比C里的static更廣,注意這個問題。register只是一個指示,一般沒有影響。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com