Kata pengantar
Artikel ini terutama memperkenalkan kepada Anda metode enkripsi Spring Security 5.x yang kompatibel dengan banyak kata sandi. Ini dibagikan untuk referensi dan pembelajaran Anda. Saya tidak akan mengatakan banyak hal di bawah ini, mari kita lihat perkenalan terperinci bersama.
1. Kata sandi keamanan musim semi
Spring Security 5 tidak memerlukan metode enkripsi kata sandi, tetapi awalan kata sandi pengguna menunjukkan metode enkripsi, seperti:
Spring Security secara resmi merekomendasikan penggunaan metode enkripsi BCRYPT yang lebih aman.
Ini memungkinkan beberapa metode enkripsi untuk didukung dalam sistem yang sama, membuatnya lebih mudah untuk memigrasikan pengguna. Metode enkripsi yang didukung oleh Spring Security 5 didefinisikan dalam Kata SandiCoderFactories:
Public Class PasswordEncoderFactories {public static PasswordEncoder CreateDeLegatingPassWordEncoder () {String encodingId = "bcrypt"; Peta <String, PasswordEncoder> encoders = new HashMap (); encoders.put (encodingid, bcryptpasswordEncoder () baru baru; encoders.put ("LDAP", LDAPShapasswordEncoder baru ()); encoders.put ("md4", md4passwordencoder () baru); encoders.put ("MD5", New MessageDigestPasswordEncoder ("MD5")); encoders.put ("NOOP", NOOPPASSWordEncoder.getInstance ()); encoders.put ("pbkdf2", pbkdf2passwordEncoder baru ()); encoders.put ("scrypt", scryptpasswordenCoder ()) baru; encoders.put ("SHA-1", New MessageDigestPassWordEncoder ("Sha-1")); encoders.put ("SHA-256", New MessageSageSpassWordEncoder ("SHA-256")); encoders.put ("SHA256", StandardPassWordEncoder baru ()); Return New DelegatingPasswordEncoder (encodingID, encoders); } private passwordEncoderFactories () {}}2 tes
2.1 pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <groupid> COM.HFCSBCS> <version> 0.0.1-Snapshot </version> <packaging> Jar </packaging> <name> keamanan </name> <mrecpription> Proyek demo untuk boot musim semi </creckripe> <parter> <groupid> org.springframework.booty </groupid> <ArtifacTid> <art.0. <!-Pencarian Orangtua dari Repositori-> </induk> <properties> <proyity.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.report.outputenCoding> UTF-8 </project.reporting.outputenceDing> <Java.8 </project.reporting.outputenCoding> <JaVa <Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-Security </artifactid> </dependency> <sependency> <Roupid> org.springframework.boot </groupid> <ArtiFacTID> <crupt-boots-stasops.boot </groupid> <Artifactid> SCRING-BOTOP.STOPEC.BOTIF </groupid> <ArtiFacTID> SPRING-BOTOP.TEST.BOTTIF </GroupID> <ArtTtifacTID> Spring-st-st-stasop </Dependency> <dependency> <GroupId> org.springframework.security </groupId> <ArTifactId> tes keamanan musim semi </arttifactid> <seCope> tes </seupopeD> </artifacties> <groupid> org.projectlombok </groupidD> <Artifacties> <groupid> org. <Plugins> <lugin> <GroupId> org.springframework.boot </groupId> <ArtifactId> spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> <r repository> <drepository> <dring> Springsnots </id> <name> <pripshots> <dripshots> <dring> Spring-Snapshot <rrepo.spring.io/snapshot </rUrl> <snapshots> <denabled> true </denabled> </snapshots> </repository> <drepository> <dring> ht-milestones </id> <name> tonggak sejarah </name> <dreroC. <snapshots> <denabled> false </denabled> </snapshots> </repository> </repository> </potsitory> </b repository> <pluginrepository> <drange> spring-snapshots </depo> <name> Snapshots </name> <rumr> https://repo.ing.ing. <Enabled> true </denabled> </snapshots> </pluginrepository> <pluginRepository> <drange> spring-milestones </dep> <name> tonggak pegas </name> <ripsps://repo.spring.io/milestone </url> <snapshots> <an snapshots> </snapshots> </snapshots> </snapshots> </snapshots> </snapshots> </snapshots> </snapshots> </snapshots> <snapshots> </Urlestone </url </url> <snapshots> <snapshot> </pluginrepository> </suginrepository> </luginrepositories> </jadi Project>
2.2 Tes
Keamanan Musim Semi 5.x menggunakan enkripsi bcrypt secara default
@Slf4jpublic kelas domainuserdetailsservice {public static void main (string [] args) {passwordEncoder passwordEncoder = passwordEncoderFactories.createdeleGatingPasswordEncoder (); String encode = passwordEncoder.encode ("kata sandi"); log.info ("kata sandi terenkripsi:" + encode); log.info ("Perbandingan Kata Sandi BCRYPT:" + PasswordEncoder.matches ("Kata Sandi", Encode)); String md5password = "{md5} 88e2d8cd1e92fd5544c8621508cd706b"; // Kata sandi sebelum enkripsi MD5 adalah: kata sandi log.info ("MD5 Perbandingan Kata sandi:" + kata sandi. }}Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.