Vorwort
In diesem Artikel wird Ihnen hauptsächlich die Verschlüsselungsmethode von Spring Security 5.x vorgestellt, die mit mehreren Kennwörtern kompatibel ist. Es wird für Ihre Referenz und Ihr Lernen geteilt. Ich werde unten nicht viel sagen. Schauen wir uns die detaillierte Einführung zusammen an.
1. Spring Security Passwordcoder
Spring Security 5 erfordert nicht die Verschlüsselungsmethode von Kennwörtern, aber das Präfix des Benutzerkennworts gibt die Verschlüsselungsmethode an, wie z. B.:
Die Spring Security empfiehlt offiziell die Verwendung einer sichereren Bcrypt -Verschlüsselungsmethode.
Auf diese Weise können mehrere Verschlüsselungsmethoden im selben System unterstützt werden, was die Migration der Benutzer erleichtert. Die von Spring Security 5 unterstützte Verschlüsselungsmethode ist in PasswordEnteCoderFactores definiert:
public class passwordEnterFactores {public static passwordEnCoder erregereLegatingPasswordEncoder () {String codingId = "bcrypt"; Karte <String, PasswordEnCoder> cnoderser = new HashMap (); ccoders.put (codierend, neuer bcryptPasswordEncoder ()); ccoders.put ("LDAP", neuer LDAPShapasswordEncoder ()); ccoders.put ("md4", neuer md4passwordEncoder ()); ccoders.put ("md5", neuer MessagedIGestPasswordEncoder ("md5"); ccoders.put ("noop", noOppasswordEncoder.getInstance ()); ccoders.put ("pbkdf2", neuer pbkdf2passwordEncoder ()); ccoders.put ("scrypt", neuer ScryptPasswordEncoder ()); ccoders.put ("SHA-1", New MessagedIGestPasswordEncoder ("SHA-1")); COCCERS.PUT ("SHA-256", New MessagedIGestPasswordEncoder ("SHA-256"); ccoders.put ("SHA256", neuer StandardPasswordEncoder ()); Return New DelegatingPasswordEnCoder (CodingId, Encoder); } private passwordeCoderfactores () {}}2 Test
2.1 pom.xml
<? 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.hfcsbc</groupId> <artifactId>security</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>security</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M7</version> <relativePath/> <!-- Lookup übergeordnet von Repository-> </übergeordnet> <Properties> <projekts.build.SourceCoding> UTF-8 </project.build.SourceCoding> <project.Reporting.outputCoding> UTF-8 </project.Reporting.outputCoding> <javoding> 1.8 </projava.version> <Java.version> 1.8 </projava.version> <Java.version> 1.8 </projava.version> <Java.version> 1.8 </projava.version> <Java.version> 1.8 </projava.version> <Java. <dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <GroupId> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Maven-Plugin </artifactId> </plugin> </plugins> </build> <empfehlungen> </name> </name> <URL> https://repo.spring.io/snapshot </url> <snapshots> <enabled> true </enabled> </snapshots> </repository> <repository> <id> Spring-milestones </id> <name> Spring-Meilensteine </name> <url> https <Napshots> <enabled> false </enabled> </snapshots> </repository> </repository> </repository> </repository> <pluginRepository> <id> Spring-SnapShots </id> <name> Spring Snapshots </name> <url> https://Repo.spring.ioio./SPRING </SNAPSHOT> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepository> </pluginRepositories> </project>
2.2 Test
Spring Security 5.x verwendet standardmäßig die Bcrypt -Verschlüsselung
@Slf4JPublic Class DomainUSerDetailsService {public static void main (String [] args) {PasswordEnCoder passwordEnCoder = passwordEntureCerfactores.CreateLegatingPasswordCoDer (); String enCode = passwordEncoder.encode ("Passwort"); log.info ("verschlüsseltes Passwort:" + codieren); log.info ("Bcrypt -Kennwortvergleich:" + passwordEncoder.Matches ("Passwort", codieren)); String md5password = "{Md5} 88e2D8CD1E92FD5544C8621508CD706B"; // Das Kennwort vor der MD5 -Verschlüsselung ist: Passwort -log.info ("MD5 -Kennwortvergleich:" + kennwortCoder.matches ("Passwort", Encodes); }}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.