كيفية إنشاء تجزئة مثل Htpasswd من Apache باستخدام Java

StackOverflow https://stackoverflow.com/questions/2469197

  •  20-09-2019
  •  | 
  •  

سؤال

أستخدم "Force MD5 تشفير كلمة المرور" في htpasswd لإنشاء تجزئة على سبيل المثال "123" أحصل عليها:

استخدم htpasswd: 123 => $ Apr1 $ katbkalo $ ewjxrzakpjaxk4thy2jop/

استخدم MD5 Digest: 123 => 202CB962AC59075B964B07152D234B70

من فضلك قل لي كيف يمكنني إنشاء تجزئة مثل Apache htpasswd باستخدام جافا شكرا.

هل كانت مفيدة؟

المحلول

يتم ترميز كلمات المرور في Apache .htpasswd باستخدام أ ملح. إذا كنت ترغب في إنشاء كلمات المرور هذه باستخدام Java ، فستحتاج إلى فعل الشيء نفسه. هذا الموقع لديه شرح لخوارزمية الملح/التجزئة المستخدمة في ملفات .htpasswd من Apache ؛ أنا أبحث عن خوارزمية فعلية يمكنك استخدامها وسيقوم بتحرير إجابتي بعد أن أجد واحدة.

تعديل: يبدو أنه سئل من قبل ، هنا على ذلك:

بناء برنامجي htpasswd

إليك الوثائق من Apache ، إلى جانب رمز المصدر الخاص بهم:

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

http://svn.apache.org/viewvc/apr/apr-util/branches/1.3.x/crypto/apr_md5.c؟view=co

نصائح أخرى

لقد وجدت حيث قام شخص ما بمعالجة هذا في Java وأصدرته برخصة بيرة. متأخرا أفضل من عدمه، أليس كذلك؟ ربما كان هناك على الأرجح منذ عام 2007 ، لذلك سأفاجأ إذا لم تجدها في النهاية بعد بعض الوقت في عام 2010.

"ميناء جافا بقلم: جوناثان أبي ، jonabbey@arlut.utexas.edu"

"md5crypt.java هو منفذ من خوارزمية تجزئة FreeBSD MD5 الأصلية لـ Poul-Henning Kamp ، مع طرق إضافية لدعم متغير خادم Apache HTTPD لهذه الخوارزمية."

"ستكون السلسلة الناتجة في النموذج" $ APR1 $u003Csalt> $u003Chashed mess> '' '

ftp://ftp.arlut.utexas.edu/pub/java_hashes/

MD5Crypt هو ما تبحث عنه. ينفذ Apache Htpasswd خوارزميات

الخوارزمية الخاصة بـ Apache باستخدام تكرار (1000 مرة) MD5 Digest لمجموعات مختلفة من 32 بت عشوائي ملح و ال كلمه السر.

import org.apache.commons.codec.digest.Md5Crypt;
...
String enPasswd = Md5Crypt.md5Crypt("your plain password".getBytes());
String htpasswdContent = "your username:" + enPasswd;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top