測試BBR,進行多次更換內核操作。記錄一下整個過程。
下載內核
先去尋找內核對應文件。例如
http://kernel.ubuntu.com/~kernel-ppa/mainline/
https://packages.debian.org
安裝對應內核
dpkg -i *下載的文件*
查看當前已經安裝的內核
dpkg -l|grep linux-image
刪除舊內核
apt-get purge *舊內核名字*
更新引導
update-grub
測試BBR,進行多次更換內核操作。記錄一下整個過程。
先去尋找內核對應文件。例如
http://kernel.ubuntu.com/~kernel-ppa/mainline/
https://packages.debian.org
dpkg -i *下載的文件*
dpkg -l|grep linux-image
apt-get purge *舊內核名字*
update-grub
這是一個簡單的配置ownCloud的教程。
先安裝好伺服器環境,我使用的是LAMP。
解壓縮,安裝數據庫略。
在 .htaccess 內
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####
下添加我們熟悉的代碼
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
RewriteEngine on
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=302]
</IfModule>
如題
可以發現下列語句
datadir=/var/lib/mysql
或者別的,這無所謂。
現將該目錄copy一份至想要轉移到的目錄,比如掛載的硬盤上。這裡用 /home/mysql_data 作為例子
cp -p /var/lib/mysql /home/mysql_data
-p參數十分重要,MySQL對目錄權限要求很高,-p參數可以將目錄權限一同複製到新的目錄內。
mv /var/lib/mysql /var/lib/mysql-backup
ln -s /home/mysql_data /var/lib/mysql
sudo service mysqld restart
如果沒有報錯,則轉移成功
任意選擇兩個素數p q,這兩個素數應是保密的。一般情況下選擇100~200位的十進制數。令n = p×q,再計算n的歐拉函數ψ(n)=(p-1)×(q-1)。這幾個數中,n可以公開。
隨機選擇一個與ψ(n)互素的整數e作為公鑰(Public key),再根據算式e × d = 1 (mod ψ(n)),計算出d作為私鑰(Private key)。這是一個求乘法逆元的過程。私鑰是保密的,公鑰是公開的。
私鑰(d, n)保密,公鑰(e, n)公開即可。
加密時,先將明文比特串分組,使每個分組的十進制數小於n(即比特串分組長度小於log2(n)),然後對每個明文分組m加密運算:
c = m^e mod n
解密同理,對密文分組進行解密運算:
m = c^d mod n
∵c = m^e mod n
∴c^d mod n = m^(ed) mod n
∵ed = 1 (mod ψ(n))
∴ed = kψ(n) + 1
∴c^d mod n = m^(kψ(n) + 1) mod n
由歐拉定理可得:
m^(ψ(n)) mod n = 1
∴m^(kψ(n)) mod n = 1
∴m^(kψ(n) + 1) mod n = m
即m^(ed) mod n = m
得證
RSA公開密鑰密碼體制於1978年提出,名字來源於提出者名字縮寫。這種密碼體制由數論構造,是迄今為止理論上最為成熟完善的密碼體制,安全性能目前看來依然良好,並且應用十分廣泛。密碼體制一般基於數學難題,RSA也不例外。
RSA是基於大整數分解的難題。給定整數e和c,尋找滿足條件的m,使得c = m^e mod N。
RSA基於以下數論內容
通過類輾轉相除法
long int gcd(long int a, long int b){
if(b == 0)
return a;
return gcd(b, a % b);
}
由模運算性質
[(a mod n) + (b mod n)] mod n = (a + b) mod n
[(a mod n) × (b mod n)] mod n = (a × b) mod n
可以簡化運算。
例如求 3^19 mod 7
= 3×3^18 mod 7
= 3×(3^2)^9 mod 7
= 3×(9 mod 7)^9 mod 7
= 3×2^9 mod 7
= 6×2^8 mod 7
= 6×4^4 mod 7
= 6×(16 mod 7)^2 mod 7
...
= 3
long int fastModel(long int base, long int power, long int model){
long int temp = 1;
long int result = 0;
while(power != 1){
if(power % 2 == 0){
power /= 2;
base = base * base % model;
}
else if(power % 2 != 0){
power -= 1;
temp = temp * base % model;
}
}
result = temp * base % model;
if (result <= 0){
result += model;
}
return (long int)result;
}
已知a,n,ax ≡ 1 (mod n),求x。
①定義X1,X2,X3,Y1,Y2,Y3。令(X1,X2,X3)=(1,0,n);(Y1,Y2,Y3)=(0,1,a)。
②令Q = X3/Y3(不留小數點)
③令(T1,T2,T3)=(X1-Q×Y1,X2-Q×Y2,X3-Q×Y3);(X1,X2,X3)=(Y1,Y2,Y3);(Y1,Y2,Y3)=(T1,T2,T3)
④迴圈這一步,直到Y3 = 1或0。如果為0,則無解;如果為1,則解為Y2。