由於matlab中double型別的資料小數點後面老會自動加一些亂七八糟的。
所以在模逆過程中把double型別的資料先換成int型別,最後再換回來。
**如下:
function [key,with] = modinv(f,m)
format long g
i=1;
a=int64(mod(det(f),m));
while(1)
if (mod((a*i),m)==1)
break;
else
i=i+1;
endend
with=int64(mod(det(f)*inv(f),m));
key=mod(double(i*with+m*100),m);
end引數f是輸入矩陣,m是模數。模逆後的矩陣是key。
如果你能保證m是質數,就可以直接使用該方法。
否則,在while迴圈前,加入乙個判斷,判斷a是否和m互質,**網上都有,可以自己找了進行新增。
Hill密碼的加密與解密(C語言)
寫乙個程式實現2 2 hill密碼的加解密演算法 加密過程寫的很順利,因為是2 2矩陣,一些本應該用矩陣乘法計算的東西也直接被我簡化成用算式表示了。在寫解密過程是遇到了問題,矩陣求逆的部分不太會做。跟著書上前面的例題看了一下。書上說對於2 2的矩陣,求其行列式。如果矩陣a有非零的行列式,則這個矩陣的...
Python hashlib hmac加密模組
1 用於加密的相關操作,3.x裡代替了md5模組和sha模組,主要提供sha1,sha224,sha256,sha384,sha512,md5演算法2 sha2為主流加密演算法,md5加密方式不如sha2 3import hashlib 4 m hashlib.md5 5 m.update b he...
python不能加密 Python之加密模組
hashlib模組 加密方式以md5方式加密舉例 是標準模組,直接匯入即可 還有其他的加密方式,比如 sha1 sha224 sha256 等,加密後的字串長度更長,安全性更高 一 加密步驟 1 字串先轉成二進位制型別 使用.encode 方法轉成二進位制型別 importhashlib passw...