मैं थोड़ी देर के लिए एक परियोजना पर काम कर रहा हूं जो उपयोगकर्ता प्रमाणीकरण के लिए डेविस का उपयोग करता है। जब भी कोई उपयोगकर्ता बनाया गया था, तो यह उनके एन्क्रिप्टेड पासवर्ड के साथ उनके लिए एक पासवर्ड नमक उत्पन्न करेगा।रेल 3/देवता: पासवर्ड नमक अब नहीं बनाया जा रहा है?
जैसा कि मैं इस परियोजना के पूंछ के अंत में आ रहा हूं, मैं उपयोगकर्ता पंजीकरण का परीक्षण कर रहा था और देखा कि मेरी नई भूमिकाएं इन नए उपयोगकर्ताओं के लिए डेटाबेस में पासवर्ड नमक नहीं बना रही थीं, जबकि मेरे पुराने उपयोगकर्ताओं के पास लवण था। नए उपयोगकर्ता ठीक से साइन इन कर सकते हैं, फिर भी मुझे चिंता है कि डेविस अब लवण क्यों नहीं बना रहा है।
डेविस I के साथ एकमात्र विषमता को तब करना पड़ा जब मैंने मॉड्यूल को अपग्रेड किया और एन्क्रिप्टेबल को हटाने के बारे में कुछ कहने वाले लॉग याद रखें क्योंकि अब bcrypt को डिफ़ॉल्ट एन्क्रिप्शन या उस प्रभाव के लिए कुछ है। मैंने ऐसा किया ... सुनिश्चित नहीं है कि वर्तमान मुद्दे के साथ इसका कोई संबंध नहीं है।
इसके अलावा, सोच रहा है कि यह मेरी परियोजना थी जो धोखा दे रहा था, मैंने स्क्रैच से एक नया रेल रेल एप्लिकेशन बनाया और इसमें डेविस जोड़ा, और यहां तक कि वह नई परियोजना उपयोगकर्ताओं के लिए लवण नहीं बना रही है।
क्या डेविस में पासवर्ड लवण सेट अप करने का कोई नया तरीका है, या क्या किसी को पता है कि लवण अब और क्यों नहीं बनाए जा रहे हैं? दुर्भाग्य से डेविस विकी के पास इस विषय पर कुछ कहना नहीं है, और Google अब तक एक निष्फल खोज रहा है।
या ... क्या पहले स्थान पर लवण रखना भी आवश्यक है? उन्हें रखने के लिए और अधिक सुरक्षित लगता है, मुझे लगता है।
उपयोगकर्ताओं/devise की मेरी कॉन्फ़िगरेशन नीचे है।
config/initializers/devise.rb
Devise.setup do |config|
config.mailer_sender = "[email protected]"
require 'devise/orm/active_record'
config.authentication_keys = [ :login ]
config.stretches = 10
config.encryptor = :bcrypt
# Setup a pepper to generate the encrypted password.
config.pepper = "79c2bf3b[...]"
end
एप्लिकेशन/मॉडल/user.rb
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
अद्यतन
मैं नोटिस पता लगाने में सक्षम था डेविस के उन्नयन के बाद से, जो पढ़ता है ...
[DEVISE] From version 1.2, there is no need to set your encryptor to bcrypt since encryptors are only enabled if you include :encryptable in your models. To update your app, please:
1) Remove config.encryptor from your initializer;
2) Add t.encryptable to your old migrations;
3) [Optional] Remove password_salt in a new recent migration. Bcrypt does not require it anymore.
तो ऐसा लगता है कि password_salt अगर आप bcrypt साथ चिपके रहते हैं, जो बताता है कि क्यों इसे अब और नहीं बनाया है मान्य नहीं है। तो इसका उत्तर है, लेकिन मेरे प्रश्न का दूसरा हिस्सा अभी भी बना हुआ है ... क्या यह एक अच्छा पर्याप्त अभ्यास है या क्या मुझे बीसीआरपी के अलावा एक और एन्क्रिप्शन के साथ जाना चाहिए?
इस विषय पर एक छोटा सा अपडेट: मैं इस विषय पर अधिक जानकारी देख रहा था और स्पष्ट रूप से बीक्रीप्ट एक अलग चीज़ होने के बजाय, नमक को पासवर्ड में एन्क्रिप्ट करता है। यह निश्चित रूप से बताएगा कि डेविस में नमक स्तंभ क्यों गिरा दिया गया था। – Shannon