Rumah >Java >javaTutorial >Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
kerana alat menggunakan kata laluan ini. untuk penyulitan atau penyahsulitan Oleh itu, anda mesti memastikan bahawa rentetan yang disulitkan dalam konfigurasi disulitkan dengan kata laluan yang sama, jika tidak, ia tidak akan dinyahsulit apabila projek dimulakan.
jasypt: encryptor: password: 123456
menyulitkan maklumat asal dalam kes ujian Kaedah penggunaannya sangat mudah. Demo mudah adalah seperti berikut:
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration public class Test { @Autowired StringEncryptor encryptor; @Test public void getPass() { #直接调用加密的方法 String mysql = encryptor.encrypt("mysql-username|mysql-password"); } }
Seperti rentetan "mysql" di atas
url: ENC(mysql==) username: ENC(mysql==) password: ENC(mysql=)
Beri perhatian. kepada ENC( ) ialah cara penulisan tetap, dan mysql== ialah rentetan sepadan anda yang disulitkan.
Dengan cara ini anda boleh berpura-pura menyulitkan maklumat sensitif, hahaha, kenapa saya katakan berpura-pura. Ramai orang mungkin keliru dengan isu ini kerana kata laluan yang disulitkan disimpan dalam fail konfigurasi dalam teks yang jelas dan boleh dinyahsulitkan dengan mudah oleh sesiapa sahaja.
Ya, betul. Kaedah penyulitan jenis ini hanya boleh dikatakan tidak membenarkan orang ramai melihat kata laluan akaun sekaligus.
Walaupun data disulitkan, ia tidak bermakna selepas penggodam mendapat akses kepada projek anda, kerana penyulitan hanyalah langkah keselamatan palsu. Oleh itu, ia adalah yang paling asas dan penting untuk memastikan keselamatan projek dan pelayan.
OK!OK!OK!
Pelajar yang membangunkan projek semua tahu bahawa, sebagai contoh, maklumat pergantungan projek dan maklumat pangkalan data biasanya disimpan dalam fail konfigurasi , dan semuanya adalah teks biasa, jadi pemprosesan penyulitan diperlukan Hari ini saya akan memperkenalkan konfigurasi jasypt yang disepadukan dengan penyulitan springboot.
Pertama sekali, ini semua berdasarkan premis bahawa projek springboot anda boleh berjalan seperti biasa.
Versi disediakan di sini
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
Cari pakej jasypt jar dalam gudang maven tempatan anda, dan buka tetingkap arahan cmd dalam direktori itu, seperti yang ditunjukkan dalam rajah:
Laksanakan
di mana Input ialah kata laluan teks biasa anda, di sini saya menunjukkan ujian, kata laluan ialah kunci peribadi anda, algoritma ialah peraturan, jangan ubahnya! ! ! . Seperti yang ditunjukkan dalam rajah selepas pelaksanaan:java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test" password=test algoritma=PBEWithMD5AndDES >
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli .JasyptPBESTringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" password=test algorithm=PBEWithMD5AndDESHasilnya adalah seperti yang ditunjukkan di bawah:
Atas ialah kandungan terperinci Cara SpringBoot menyulitkan kata laluan akaun SQL bagi fail konfigurasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!