Genellikle parola karmaşası yapmak için bcrypt kütüphanesini kullandım, ancak kütüphanenin syscall
kullanımı nedeniyle bunu yapamıyorum. Ben de şifrelemeyi denedim. Başka hangi yollar güvenli ve en iyi yol hangisidir?Golang/App Engine - Bir kullanıcının parolasını güvenli bir şekilde sağlama
cevap
go.crypto'a bir göz atın. Pbkdf2 ve bcrypt için destek sunuyor. Her iki uygulama da yalnızca Go'da yazılmıştır ve GAE üzerinde çalışmalıdır.
Kullanmak için en basit olanı muhtemelen bcrypt'dir.
import "golang.org/x/crypto/bcrypt"
func clear(b []byte) {
for i := 0; i < len(b); i++ {
b[i] = 0;
}
}
func Crypt(password []byte) ([]byte, error) {
defer clear(password)
return bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
}
ctext, err := Crypt(pass)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(ctext))
çıktısı şu şekilde olacaktır:
go get golang.org/x/crypto/bcrypt
Örnek kullanımını: paket koşmak almak için
sadece karma, kullanım PBKDF2 istiyorsanız$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
. Örnek: Bildiğim kadarıyla kokan http://code.google.com/p/go/source/browse/scrypt/scrypt.go?repo=crypto de scrypt kütüphanesini söylemek mümkün değilim gibi
import "golang.org/x/crypto/pbkdf2"
func HashPassword(password, salt []byte) []byte {
defer clear(password)
return pbkdf2.Key(password, salt, 4096, sha256.Size, sha256.New)
}
pass := []byte("foo")
salt := []byte("bar")
fmt.Printf("%x\n", HashPassword(pass, salt))
neden açık (parola) gerekli? –
@HelinWang Bu, ancak düz metin parolasının tutulduğu belleğin üzerine yazmaktan hoşlanırım. – nemo
teşekkürler, bu ilginç bir nokta. –
- 1. CMD: Geçerli kullanıcının parolasını yazdır
- 2. Kök kullanıcının parolasını MySQL'de nasıl değiştiririm?
- 3. Nasıl güvenli bir şekilde C++
- 4. Bir javascript kodunu bir kullanıcının tarayıcısına güvenli bir şekilde göndermek mümkün mü?
- 5. Bir dosyayı nasıl güvenli bir şekilde silebilirim?
- 6. Ayrıştırma, kullanıcının kimliğini doğru bir şekilde doğrulamıyor
- 7. Tamsayılar nasıl güvenli bir şekilde verilir?
- 8. Erişim belirteci güvenli bir şekilde kaydetme
- 9. Android'de işitme güvenli bir şekilde nasıl durdurulur?
- 10. Titanium - Cihazda bilgileri güvenli bir şekilde saklayın
- 11. HowChar güvenli bir şekilde nasıl iptal edilir?
- 12. Güvenli bir şekilde şöyle My kodudur JavaScript
- 13. Birden çok MySQL kullanıcısını güvenli bir şekilde%
- 14. Güvenli bir şekilde zorla kapatma yolu
- 15. SQL sorgusunda güvenli bir şekilde joker karakter olarak nasıl kullanılır *
- 16. Bir kullanıcının siteme yüklediği özel fotoğrafları nasıl güvenli hale getirebilirim?
- 17. Python çoklu işleme güvenli bir şekilde bir dosyaya yazıyor
- 18. Uzaktaki bir git dalı nasıl güvenli bir şekilde silerim?
- 19. Aws dosyaları güvenli bir şekilde silmenin bir yolu var mı?
- 20. Kimliği doğrulanmış kullanıcının Moq kullanarak birim sınamada kullanılmasını sağlama
- 21. Deployd: dpd-pasaport nasıl uygulanır ve güvenli bir şekilde doğrulanır
- 22. Buluttan ödemeyi doğrulayamıyorsanız, siparişi bulutta güvenli bir şekilde nasıl kaydedersiniz?
- 23. Yüklenen dosyanın herhangi bir sunucuda PHP ile çalıştırılmasını nasıl güvenli bir şekilde engellersiniz?
- 24. GitLab: Git parolasını itemiyorum veya klonlayamıyorum, Git parolasını isteme
- 25. İş parçacıkları, statik başlatma sırasında güvenli bir şekilde oluşturulabilir mi?
- 26. PHP-MySQL-MySQL tamsayı alanını nasıl güvenli bir şekilde artırabilirim?
- 27. Genel Web Hizmetine/Verilerin Güvenli Bir Şekilde Nasıl Aktarılması
- 28. Python'da dosyaları güvenli bir şekilde açma/kapatma 2.4
- 29. Sash komutları güvenli bir şekilde sembolik bağlantılar oluşturmak için?
- 30. RAM'da Python değişkenlerinin üzerine güvenli bir şekilde yazılsın mı?
syscall işlevini kullanmayın. – Intermernet
Hmm. Denedim ve aynı hatayı alıyorum. Bence pbkdf2 lib kullanıyor - Eğer bunu denerseniz, o da ölür. – benkraus