مقدمة
تقدم لك هذه المقالة بشكل أساسي طريقة التشفير في Spring Security 5.x المتوافقة مع كلمات مرور متعددة. يتم مشاركته للرجوع إليه وتعلمك. لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية معًا.
1.
لا يتطلب Spring Security 5 طريقة تشفير كلمات المرور ، ولكن بادئة كلمة مرور المستخدم تشير إلى طريقة التشفير ، مثل:
يوصي Spring Security رسميًا باستخدام طريقة تشفير BCrypt أكثر أمانًا.
يتيح ذلك دعم طرق تشفير متعددة في نفس النظام ، مما يسهل ترحيل المستخدمين. يتم تعريف طريقة التشفير التي تدعمها Spring Security 5 في PasswordEncoderFactories:
الفئة العامة passworderFerfactories {public passworderencoder createlegatingpasswordencoder () {String chigodingid = "bcrypt" ؛ خريطة <string ، passwordencoder> encoders = new HashMap () ؛ Encoders.put (encodingid ، bcryptpassworderencoder ()) ؛ Encoders.put ("LDAP" ، LdapShapasswordenCoder ()) ؛ Encoders.put ("MD4" ، جديد MD4PassworderCoder ()) ؛ Encoders.put ("MD5" ، New MessageStPasswordenCoder ("MD5")) ؛ Encoders.put ("noop" ، nooppasswordencoder.getInstance ()) ؛ Encoders.put ("PBKDF2" ، New PBKDF2PasswordenCoder ()) ؛ Encoders.put ("Scrypt" ، New ScryptPasswordEncoder ()) ؛ Encoders.put ("Sha-1" ، New MessageSpasspasswordencoder ("SHA-1")) ؛ Encoders.put ("SHA-256" ، New MessAgedIgSpasswordenCoder ("SHA-256")) ؛ Encoders.put ("sha256" ، new StandardPassworderencoder ()) ؛ إرجاع New DevatingPasswordenCoder (EncodingId ، الترميز) ؛ } passworderferfactories () {}}2 اختبار
2.1 pom.xml
<؟ XSI: Schemalocation = "http://maven.apache.org/pom/4.0.0 <splection> 0.0.1-snapshot </version> <packaging> جرة </packaging> <name> الأمان </name> <Description> Demo Project for Spring Boot </description> <partid> <roupiD> org.springframework.boot </rouciated> <!-Lookup Parent from ropository-> </paret> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.utputencoding> <ependencies> <Rependency> <rougiD> org.springframework.boot </rougiD> <Stifactid> Spring-boot-starter-security </stifactid> </sependency> <redenced> <roupiD> org.springframework.boot </grouped> </reperency> <reperency> <roupiD> org.springframework.Security </rougiD> <StifactId> اختبار الأمن الربيعي </insifactid> <scope> اختبار </scope> </remebency> </repondency> </repondency> </repondency> remofency </repondency> armofeans </repondency> armofeans </repomin> <uccedins> <lopin> <roupiD> org.springframework.boot </rougiD> <StifactId> Spring-boot-maven-plugin </shintifactid> </sultiin> </sunalins> </build> <Spositories> <Url> https://repo.spring.io/snapshot </url> <tainsts> <تمكين> صواب </enabled> </snapshots> </ropository> <rropository> <id> spring-milestones </id> <ame> milestones </name> <SpeShots> <تمكين> خطأ </enabled> </snapshots> </ropository> </ropository> </ropository> </ropository> <clupinrepository> <id> spring-snapshots </id> <ame> snapshots </ame> <Url> https://repo.spring.io <Tuper> true </enabled> </slatshots> </sucplitiNrepository> <pluginRepository> <id> spring-milestones </id> <name> معالم الربيع </name> <Url> https://repo.spring.io/milestone </url> <slapshots> false> </sultiinrepository> </sugioninrepositories> </project>
2.2 اختبار
Spring Security 5.x يستخدم تشفير Bcrypt افتراضيًا
@slf4jpublic class domainuserDetailsService {public static void main (string [] args) {passwordencoder passworkoder = passwordEncoderFactories.CreatedEleGatingPassworder () ؛ String encode = passwordencoder.encode ("كلمة المرور") ؛ log.info ("كلمة المرور المشفرة:" + تشفير) ؛ log.info ("مقارنة كلمة المرور bcrypt:" + passwordencoder.matches ("password" ، encode)) ؛ String md5password = "{md5} 88E2D8CD1E92FD5544C8621508CD706B" ؛ // كلمة المرور قبل تشفير MD5 هي: password log.info ("MD5 Password Comparison:" Vailuredencoder.matches ("password" ، encode) ؛ }}لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.