第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JAVA (jasypt) 加密并使用 PHP 解密

使用 JAVA (jasypt) 加密并使用 PHP 解密

PHP
慕尼黑5688855 2023-04-21 17:30:43
使用 JAVA (jasypt) 加密并使用 PHP 解密 - 什么是不易受攻擊的算法?我正在處理具有以下任務(wù)的遺留系統(tǒng):1) Java 應(yīng)用程序?qū)⒁恍┘用軘?shù)據(jù)保存在 mysql 數(shù)據(jù)庫中。這種情況很少發(fā)生。數(shù)據(jù)保存一次,很少更新。2) PHP 頁面從 mysql 數(shù)據(jù)庫加載加密數(shù)據(jù)并將其用于內(nèi)部邏輯。此 php 頁面必須能夠在內(nèi)部對其進行解密,但不能對其進行加密。3) java 應(yīng)用程序還從 mysql 數(shù)據(jù)庫加載加密數(shù)據(jù)并對其進行解密以供內(nèi)部使用。換句話說,我有一個加密和解密數(shù)據(jù)的 Java 應(yīng)用程序。我有一個php單頁,必須能夠解密數(shù)據(jù)。目前,我必須使用新的加密算法重新執(zhí)行此操作。我在 stackoverflow 上進行了研究,很多人都說要遠離 MD5 和 DES。據(jù)我所知,我必須使用 AES,所以我想出了下面的 java 代碼。然而:a)我不確定如何用 php 解密,我通常使用 openSSL 但我不知道 php 中的等效算法名稱。<?phpini_set('display_errors', 1);$salt = 'nXdHqFg74g22g4Vq';$key = $salt; // ? not sure$data = 'uVJ+m3FGkzFTCQXpZJysmo53rWh5+5L9dWzyyD8xues=';$method = "AES-256-CFB"; //not sure which//openssl_decrypt ( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string $tag = "" [, string $aad = "" ]]]] ) : stringecho openssl_decrypt($data, "AES-256-CFB", $key);?>b)這對于一般用途是否足夠安全?我不需要任何足夠安全的東西,因為這些數(shù)據(jù)主要通過 https 傳輸。參考文獻中的重要引述:理想情況下,您應(yīng)該遠離 DES,并且由于此填充將成為 PHP 中的一個問題,為什么不看看您是否可以將加密算法更改為不那么麻煩且更安全的算法呢?為了幫助您可以顯示此頁面:http://www.ietf.org/rfc/rfc4772.txt,其中簡潔地表示 DES 容易受到暴力攻擊,因此已被棄用并替換為 AES。社區(qū) ? 111 銀色徽章于 2013 年 12 月 17 日 17:15 回答詹姆斯布萊克MD5 和 DES 都有已知漏洞,不應(yīng)使用。– SLaks 12 年 4 月 24 日 14:45MD5 實際上適用于密鑰派生,單個 DES 僅適用于實時、短暫的加密目的(基本上永遠不會)。當然,兩者都應(yīng)該避免,尤其是當你不知道自己在做什么的時候。– Maarten Bodewes 2012 年 4 月 25 日 20:06
查看完整描述

1 回答

?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

關(guān)于Jasypt代碼,必須考慮以下幾點:

  • PBEWithHMACSHA512AndAES_256使用PBKDF2,即通過摘要、密碼、鹽和迭代計數(shù)導出加密/解密密鑰,即解密也需要這些參數(shù)。算法和摘要可以直接導出:AES-256和SHA-512。作為操作模式,應(yīng)用 CBC。

  • 由于隨機生成的鹽,發(fā)布的代碼每次都會生成不同的密文。用戶定義的鹽可以傳遞給類似于 IV 的PooledPBEStringEncryptor實例:textCryptor

    textCryptor.setSaltGenerator(new?StringFixedSaltGenerator(<YourSalt>));
  • Jasypt使用塊大小(AES 為 16 字節(jié))作為鹽大小。較小的鹽會導致異常,較大的鹽會被簡單地截斷。

  • IV 的處理類似于鹽:較小的 IV 導致異常,較大的 IV 被截斷。

  • 如果未使用 顯式設(shè)置迭代計數(shù)PooledPBEStringEncryptor#setKeyObtentionIterations(<iteration count>),1000則默認使用。

  • Jasypt需要一個 ASCII 字符串作為密碼(只是為了完整性,因為發(fā)布的代碼確實如此)。

使用 Salt,JasyptA16bytesSalt_012代碼提供以下密文:。可以使用 PHP 解密此密文,如下所示:Lg01eeYnujbof0Wy9rs3XQ==hash_pbkdf2

<?php

$salt = 'A16bytesSalt_012'; // First 16 bytes of the salt used in Jasypt code

$iv = 'some_random_word';? ?// First 16 bytes of the IV used in Jasypt code

$iterations = 1000;? ? ? ? ?// Jasypt default

$password = array(110, 88, 100, 72, 113, 70, 103, 55, 52, 103, 50, 50, 103, 52, 86, 113); // Password used in Jasypt code

$password = implode(array_map("chr", $password));

$key = hash_pbkdf2("sha512", $password, $salt, $iterations, 32, TRUE);


$data = 'Lg01eeYnujbof0Wy9rs3XQ=='; // Ciphertext from Jasypt code?

$method = "aes-256-cbc";? ? ? ? ? ? // Algorithm and mode used in Jasypt code

echo openssl_decrypt($data, $method, $key, 0, $iv);

?>


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關(guān)注
  • 207 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號