加密後字元串長度
① php 當中 openssl_private_encrypt 加密的時候 為什麼只能加密117個字元的長度的字元串,超過這個長度的字
PHP RSA使用非對稱加解密就是 密鑰/8 -11的長度。你可以使用AES/DES對稱加解密這個不限制長度
1. 可以考慮引入字元A~Z,加上0~9,形成36進制(更進一步可以大小寫敏感,加上a~z,形成62進制);
2. 將上述字元串 除以36 取余;作為個位數;上述字元串 除以36 取整,作為結果,重復本步取余計算。
3. 獲得結果。
4. 反向解析,將上述結果,分別按位數 乘以 36 ;
5. 最後合並相加,獲得原字元串。
③ MD5,最多可把多長的字元串加密
MD5的加密是不可逆轉的,是為了保證文件的正確性,防止一些人盜用程序。而且不同的字元串加密後結果可能一樣,但是幾率非常小。
MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc發明,經MD2、MD3和MD4發展而來。
Message-Digest泛指位元組串(Message)的Hash變換,就是把一個任意長度的位元組串變換成一定長的大整數。請注意我使用了「位元組串」而不是「字元串」這個詞,是因為這種變換只與位元組的值有關,與字元集或編碼方式無關。
MD5將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法,換句話說就是,即使你看到源程序和演算法描述,也無法將一個MD5的值變換回原始的字元串,從數學原理上說,是因為原始的字元串有無窮多個,這有點象不存在反函數的數學函數。
MD5的典型應用是對一段Message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在一個叫 readme.txt文件中,並對這個readme.txt產生一個MD5的值並記錄在案,然後你可以傳播這個文件給別人,別人如果修改了文件中的任何內容,你對這個文件重新計算MD5時就會發現(兩個MD5值不相同)。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的「抵賴」,這就是所謂的數字簽名應用。
MD5還廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它演算法)的方式保存的, 用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,而系統並不「知道」用戶的密碼是什麼。
④ MD5加密最長允許多少位元組的字元串
MD5加密後的值是128bit的,按4位二進制組合成一個十六進制,所以最後出來的十六進制字元串是32個,比如。
要說被MD5加密的字元串,是沒有限制的。
⑤ md5加密以後的字元串長度
加密後為128位(bit),按照16進制(4位一個16進制數)編碼後,就成了32個字元。MD5並不是加密演算法,而是摘要演算法。加密演算法是可逆的,摘要演算法是理專論上不可逆的,詳細步驟:
1、md5演算法主要應用在密碼領域,為了防止明文傳輸密碼的危險性,一般會用密碼的md5值來代替密碼本身。