apacheaes加密
⑴ linux系統針對https使用apache ab壓力測試出現 ssl read fail,且吞吐量劇降的問題
您這個問的已經非常專業,目前市面上主流的SSL證書採用的證書密鑰交換演算法是RSA非對稱演算法2048位,其實在1024位的時候當訪問量增加的時候就已經影響到伺服器的訪問速度,為了不讓鏈接中斷,系統只能降低吞吐量,後來1024位的根證書不安全,國際組織強行要求各大CA機構頒發RSA 2048位的根證書,基於影響運算速度的問題了,行業內的龍頭老大Symantec公司旗下的VeriSign便研發了支持ECC 256位的根證書,其安全性等於RSA 3016位的根證書,運算速度卻可以提高一倍。此外還與您伺服器上布署的SSL連接加密有關,目前市面主流的採用RC4 128位,AES 128位和AES 256位,加密位數高,安全性是會提高一些,但也會影響處理效率。在您伺服器的處理能力與安全性上折中一下,個人認為,128位的連接加密目前還是很安全的。
⑵ java編程一個AES加密txt文件的程序,其中AES解密文件的方法出錯,求大神搭救
你是對文件內容加的密,應該和文件類型無關把。如果用的是
AES演算法加的密的話,初始化的時候就會寫到
keygen = KeyGenerator.getInstance("AES");
//生成密鑰
deskey = keygen.generateKey();
//生成Cipher對象,指定其支持的DES演算法
c = Cipher.getInstance("AES");
加密和解密的過程幾乎是一樣的,AES是對稱加密方式,你看看加密和解密方法里的有沒有寫錯的地方。
⑶ php JAVA AES加密 轉換
PHP代碼:
<?php
class Security {
public static function encrypt($input, $key) {
$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$input = Security::pkcs5_pad($input, $size);
$td = mcrypt_mole_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
$data = base64_encode($data);
return $data;
}
private static function pkcs5_pad ($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
public static function decrypt($sStr, $sKey) {
$decrypted= mcrypt_decrypt(
MCRYPT_RIJNDAEL_128,
$sKey,
base64_decode($sStr),
MCRYPT_MODE_ECB
);
$dec_s = strlen($decrypted);
$padding = ord($decrypted[$dec_s-1]);
$decrypted = substr($decrypted, 0, -$padding);
return $decrypted;
}
}
$key = "1234567891234567";
$data = "example";
$value = Security::encrypt($data , $key );
echo $value.'<br/>';
echo Security::decrypt($value, $key );
---------------
java 代碼
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class Security {
public static String encrypt(String input, String key){
byte[] crypted = null;
try{
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey);
crypted = cipher.doFinal(input.getBytes());
}catch(Exception e){
System.out.println(e.toString());
}
return new String(Base64.encodeBase64(crypted));
}
public static String decrypt(String input, String key){
byte[] output = null;
try{
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skey);
output = cipher.doFinal(Base64.decodeBase64(input));
}catch(Exception e){
System.out.println(e.toString());
}
return new String(output);
}
public static void main(String[] args) {
String key = "1234567891234567";
String data = "example";
System.out.println(Security.encrypt(data, key));
System.out.println(Security.decrypt(Security.encrypt(data, key), key));
}
}
⑷ apache2.4 ssl證書配置問題(httpd-ssl.conf配置如圖)怎麼解決
1、打開apache 安裝目錄下 conf 目錄中的httpd.conf 文件。
2、打開apache 安裝目錄下 conf/extra 目錄中的httpd-ssl.conf 文件
⑸ Cipher.getInstance("AES/ECB/PKCS5Padding")怎麼解決
在生成密鑰時,我用自己提供的一個密碼,用這句SecretKeySpec aesKey = new SecretKeySpec("12345678".getBytes(), "AES"); 「12345678」提供的個任意長度的密碼,通過它生成。
⑹ shiro550和721的區別
Shiro-550,只需輸入url,即可完成自動化檢測和漏洞利用。Shiro-721,需輸入url,提供一個有效的rememberMe Cookie,並指定目標操作系統類型。
Shiro-550,Apache Shiro框架提供了記住密碼的功能(RememberMe),用戶登錄成功後會生成經過加密並編碼的cookie。在服務端對rememberMe的cookie值,先base64解碼然後AES解密再反序列化,就導致了反序列化RCE漏洞。Shiro-721,由於Apache Shiro cookie中通過 AES-128-CBC 模式加密的rememberMe欄位存在問題,用戶可通過Padding Oracle 加密生成的攻擊代碼來構造惡意的rememberMe欄位,並重新請求網站,進行反序列化攻擊,最終導致任意代碼執行。
⑺ Apache版UPUPW PHP5.4支持RSA加密嗎
一般來說,加密分為兩個部分,一個是非對稱加密,一個是對稱加密,使用對稱加密加密正文信息,使用非對稱加密加密對稱加密的密鑰,然後發送加密數據(消息摘要和數字簽名就不討論了),這是正規的數據加密策略,對稱加密默認支持大數據分段加密策略,你只需要從介面中完成加密即可,而且對稱加密速度比非對稱加密快很多,如果你需要使用這個策略建議使用AES。如果你不願意使用對稱加密,只願意使用AES加密,那你就必須喪失速度了,而且自己處理分段加密,因為RSA加密通常是117個位元組就要分段(這個長度可能和密鑰長度有關,我是用的介面是117),你需要自己把數據變成N個117位元組的數據段來完成加密,解密也需要自己完成位元組拼裝。