"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تأمين كلمات مرور المستخدم في Go on App Engine؟

كيفية تأمين كلمات مرور المستخدم في Go on App Engine؟

تم النشر بتاريخ 2024-11-08
تصفح:158

How to Secure User Passwords in Go on App Engine?

تأمين كلمات مرور المستخدم في 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