تأمين كلمات مرور المستخدم في Go on App Engine
عند التعامل مع كلمات مرور المستخدم في تطبيقات Go المنشورة على Google App Engine، يكون الأمان أمرًا بالغ الأهمية. مكتبة bcrypt، على الرغم من فعاليتها في تجزئة كلمة المرور، إلا أنها تفرض قيودًا بسبب استخدامها لـ syscall. لهذا السبب، قد يبحث المطورون عن طرق بديلة لتجزئة كلمة المرور الآمنة.
أحد الخيارات الموثوقة هو الاستفادة من حزمة golang.org/x/crypto، التي توفر تطبيقات أصلية لـ PBKDF2 وbcrypt. تعمل هذه التطبيقات على إلغاء الاعتماد على syscall، مما يجعلها مناسبة لـ App Engine.
استخدام bcrypt
لاستخدام bcrypt، اتبع الخطوات التالية:
1. Install the package: go get golang.org/x/crypto/bcrypt
2. Example usage: package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { pass := []byte("your password") // Generate a hashed password ctext, err := bcrypt.GenerateFromPassword(pass, bcrypt.DefaultCost) if err != nil { // Handle error } fmt.Println(string(ctext)) // Example output: $2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e }
استخدام PBKDF2
لاحتياجات التجزئة الأبسط، يمكن استخدام PBKDF2:
1. Install the package: go get golang.org/x/crypto/pbkdf2
2. Example usage: package main import ( "fmt" "golang.org/x/crypto/pbkdf2" ) func main() { pass := []byte("your password") salt := []byte("your salt") // Generate a hash hash := pbkdf2.Key(pass, salt, 4096, sha256.Size, sha256.New) fmt.Printf("%x\n", hash) // Example output: 0x079b8238d3815d31d87d75ff893371ac3cc875f97eca499854655da9554d2555 }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3