Openfire는 복어 암호화를 사용하여 데이터베이스에 암호화 된 암호를 저장합니다.PHP를 통해 openfire MySQL에서 암호화 된 암호를 생성
http://svn.igniterealtime.org/svn/repos/openfire/trunk/src/java/org/jivesoftware/util/Blowfish.java은 openfire에서 암호화/암호 해독 기능이 작동하는 방법에 대한 Java 구현입니다.
제 목표는 PHP와 MySQLI를 통해 데이터베이스에 새로운 사용자 항목을 만드는 것입니다. 시도한 모든 유사 콘텐츠는 이미 데이터베이스에있는 것과 일치하지 않는 결과를 가져 왔습니다. 예 :
d3f499857b40ac45c41828ccaa5ee1f90b19ca4e0560d1e2dcf4a305f219a4a2342aa7364e9950db
은 암호화 된 암호 중 하나입니다. mcrypt blowfish php slightly different results when compared to java and .net
$key = '1uY40SR771HkdDG';
$pass = 'stackoverflow';
$blocksize = mcrypt_get_block_size('blowfish', 'cbc'); // get block size
$pkcs = $blocksize - (strlen($data) % $blocksize); // get pkcs5 pad length
$data.= str_repeat(chr($pkcs), $pkcs); // append pkcs5 padding to the data
// encrypt and encode
$res = base64_encode(mcrypt_cbc(MCRYPT_BLOWFISH,$key, $pass, MCRYPT_ENCRYPT));
echo $res;
// result: 3WXKASjk35sI1+XJ7htOGw==
어떤 영리한 아이디어, 또는 눈부신 문제에 따라
echo mcrypt_cbc(MCRYPT_BLOWFISH, '1uY40SR771HkdDG', 'stackoverflow', MCRYPT_ENCRYPT, '12345678');
// result: áë*sY¶nŸÉX_33ô
또 다른 : stackoverflow
나는 몇 가지 변화를 시도했습니다 일반 텍스트,이 있는가? 이 질문의 첫 번째 링크에서 참조한대로 Blowfish.encryptString()
을 구현하기 만하면됩니다.
가장 현저한 문제는 * 사용자가 * 해싱 * 대신 암호를 암호화하고 있다는 것입니다. ** 절대적으로 ** 암호가 원래 형식 인 경우를 제외하고는 그렇게하지 마십시오. – NullUserException
XMPP 프로토콜은 일반 텍스트를 사용하여 사용자를 인증합니다. 그것이 Openfire에서 암호화/해독이 필요한 이유입니다. 그냥 내가 가지고있는 것과 함께 일하려고 노력하는 ... – sdolgy
그것이 생산하는 것에 대한 몇 가지 테스트 벡터가 있습니까? 키, iv, 데이터 및 암호문 조합 – Ivo