Prefácio
Este artigo apresenta principalmente o método de criptografia de segurança da primavera 5.x que é compatível com várias senhas. É compartilhado para sua referência e aprendizado. Não vou dizer muito abaixo, vamos dar uma olhada na introdução detalhada juntos.
1. Spring Security PasswordEncoder
A Spring Security 5 não requer o método de criptografia de senhas, mas o prefixo da senha do usuário indica o método de criptografia, como:
A Spring Security recomenda oficialmente o uso de um método de criptografia BCRYPT mais seguro.
Isso permite que vários métodos de criptografia sejam suportados no mesmo sistema, facilitando a migração de usuários. O método de criptografia suportado pelo Spring Security 5 é definido no PasswordEncoderFactories:
public class PasswordEncoderFacories {public static senhaEncoder CreateLegatingPasswordEncoder () {String codingid = "bCrypt"; Mapa <string, senhancoder> codificadores = new hashmap (); codificadores.put (codingId, new bcryptPasswordEncoder ()); codificadores.put ("LDAP", new LdapshaPassWordEncoder ()); codificadores.put ("md4", novo md4passwordEncoder ()); codificadores.put ("md5", new MessAgedigSpPasswordEncoder ("md5")); coders.put ("Noop", NoopPasswordEncoder.getInstance ()); codificadores.put ("pbkdf2", new pbkdf2passwordEncoder ()); codificadores.put ("scrypt", new scryptpasswordEncoder ()); codificadores.put ("sha-1", new MessAgedigestPasswordEncoder ("sha-1")); codificadores.put ("sha-256", new MessAgedigSpPasswordEncoder ("sha-256")); codificadores.put ("sha256", new StandardPasswordEncoder ()); devolver novo DelegatingPasswordEncoder (codingId, codificadores); } private senhaEncoderFactories () {}}2 teste
2.1 pom.xml
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance 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> <Versão> 0.0.1-SNAPSHOT </Version> <batyaging> jar </acheging> <name> Segurança </name> <cription> Projeto de demonstração para a inicialização da mola </cription> <air> <puperid> org.springframework.boot </frugid> <stifactid> spring-boot-starter-parent </artefactid> Pai do Repository-> </axer> <Properts> <Project.build.sourceEncoding> utf-8 </project.build.sourceEncoding> <projeto.reporting.outputEncoding> utf-8 </project.reporting.outputEncoding> <nava.version> 1.8 </project.reporting.outputing> <nava.version> 1.javion> 1.Javerssion> 1.Jansersion> 1.Jansersion> 1.8 </project.reporting.outputEncoding> <nava.version> 1.8 <javaSersion> <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> <UroupID> org.springframework.boot </frugiD> <TRATIFACTID> Spring-boot-maven-plugin </ArtifactId> </flugin> </plugins> </fuild> <positionies> <ppository> <ds Spring-Snapshots </id> <nome> Spring Stangs </Spring> Spring> Spring> Spring> Spring> <url> https://repo.spring.io/snapshot </url> <nsnapShots> <bility> true </abilabed> </snapshots> </positório> </repository> <d> spring-milestones </dod> <name> mola </name> <BRODME> HTTPS:/ <snapshots> <enabled>false</enabled> </snapshots> </repository> </repository> </repository> </repository> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <inabled> true </abilabed> </snapshots> </pluginrepository> <cluginRepository> <id> Spring-Milestones </dod> <name> Marcos da mola </name> <url> https://repo.spring.io/milestone </url> <pransts> <filled> <filled> Fallabled> <abillabled> <filled> Falledled> <abillabled> <filled> Falled> <abillabled> <filled> Fallabled> <abillabled> <filled> Falled> <abillabled> <filled> Falledled>) </pluginRepository> </pluginRepositories> </ject>
2.2 Teste
Spring Security 5.x usa a criptografia BCRYPT por padrão
@Slf4jpublic classe domainUserDetailSService {public static void main (string [] args) {senhaEncoder senhaencoder = senhancoderFactories.CreateleGatingPasswordEncoder (); String cody = senhaNcoder.Encode ("senha"); log.info ("senha criptografada:" + codificação); Log.info ("Comparação de senha BCrypt:" + PasswordEncoder.matches ("Senha", Encode)); String md5password = "{md5} 88e2d8cd1e92fd5544c8621508cd706b"; // a senha antes do md5 criptografia é: senha log.info ("md5 senha comparação:" + senha -coder.matches ("senha,, senha); }}Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.