تجزئة كلمات المرور بشكل آمن في Golang/App Engine بدون syscall أو scrypt
بينما يتم استخدام scrypt و scrypt بشكل شائع لتجزئة كلمة المرور، فقد لا يكونا كذلك مناسب لمحرك التطبيقات نظرًا لإمكانية الوصول إلى syscall. كبديل، فكر في الاستفادة من مكتبة go.crypto لتجزئة كلمة المرور بشكل آمن.
توفر حزمة go.crypto الدعم لكل من pbkdf2 وbcrypt. تمت كتابة كلا التطبيقين بالكامل بلغة Go، مما يضمن التوافق مع App Engine.
1. استخدام bcrypt
قم بتنفيذ bcrypt باستخدام الخطوات التالية:
go get golang.org/x/crypto/bcrypt
مثال للاستخدام:
import "golang.org/x/crypto/bcrypt"
func clear(b []byte) {
for i := 0; i سينتج عن ذلك مخرجات مشابهة لـ:$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
2. استخدام pbkdf2
للحصول على تجزئة بسيطة باستخدام pbkdf2:import "golang.org/x/crypto/pbkdf2"
func HashPassword(كلمة المرور، الملح []بايت) []بايت {
تأجيل واضح (كلمة المرور)
إرجاع pbkdf2.Key (كلمة المرور، الملح، 4096، sha256.Size، sha256.New)
}
تمرير := []بايت("foo")
الملح := []بايت("شريط")
fmt.Printf("%x\n"، HashPassword(pass, salt))
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3