Bläddra i källkod

FTP加密改为Sm2

wukai 1 år sedan
förälder
incheckning
2f19ff0c3f

+ 8 - 8
doc-biz/src/main/java/com/doc/ftp/DocFtpServer.java

@@ -93,17 +93,17 @@ public class DocFtpServer {
             DbUserManagerFactory factory = new DbUserManagerFactory();
             factory.setDataSource(dataSource);
             factory.setAdminName("admin");
-            factory.setSqlUserAdmin("SELECT userid FROM FTP_USER WHERE userid='{userid}' AND userid='admin'");
-            factory.setSqlUserInsert("INSERT INTO FTP_USER (userid, userpassword, homedirectory, " +
+            factory.setSqlUserAdmin("SELECT userid FROM SCANNER_FTP WHERE userid='{userid}' AND userid='admin'");
+            factory.setSqlUserInsert("INSERT INTO SCANNER_FTP (userid, userpassword, homedirectory, " +
                     "enableflag, writepermission, idletime, uploadrate, downloadrate) VALUES " +
                     "('{userid}', '{userpassword}', '{homedirectory}', {enableflag}, " +
                     "{writepermission}, {idletime}, uploadrate}, {downloadrate})");
-            factory.setSqlUserDelete("DELETE FROM FTP_USER WHERE userid = '{userid}'");
-            factory.setSqlUserUpdate("UPDATE FTP_USER SET userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime},uploadrate={uploadrate},downloadrate={downloadrate},maxloginnumber={maxloginnumber}, maxloginperip={maxloginperip} WHERE userid='{userid}'");
-            factory.setSqlUserSelect("SELECT * FROM FTP_USER WHERE userid = '{userid}'");
-            factory.setSqlUserSelectAll("SELECT userid FROM FTP_USER ORDER BY userid");
-            factory.setSqlUserAuthenticate("SELECT userid, userpassword FROM FTP_USER WHERE userid='{userid}'");
-            factory.setPasswordEncryptor(new Sm3Ftp());
+            factory.setSqlUserDelete("DELETE FROM SCANNER_FTP WHERE userid = '{userid}'");
+            factory.setSqlUserUpdate("UPDATE SCANNER_FTP SET userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime},uploadrate={uploadrate},downloadrate={downloadrate},maxloginnumber={maxloginnumber}, maxloginperip={maxloginperip} WHERE userid='{userid}'");
+            factory.setSqlUserSelect("SELECT * FROM SCANNER_FTP WHERE userid = '{userid}'");
+            factory.setSqlUserSelectAll("SELECT userid FROM SCANNER_FTP ORDER BY userid");
+            factory.setSqlUserAuthenticate("SELECT userid, userpassword FROM SCANNER_FTP WHERE userid='{userid}'");
+            factory.setPasswordEncryptor(new Sm2Ftp());
             serverFactory.setUserManager(factory.createUserManager());
             //7、实例化FTP Server
             server = serverFactory.createServer();

+ 29 - 0
doc-biz/src/main/java/com/doc/ftp/Sm2Ftp.java

@@ -0,0 +1,29 @@
+package com.doc.ftp;
+
+import com.doc.common.utils.encrypt.Sm2Util;
+import org.apache.ftpserver.usermanager.PasswordEncryptor;
+
+/**
+ * FTP专用密码存储
+ *
+ * @author wukai
+ * @date 2023/11/27 20:54
+ */
+public class Sm2Ftp implements PasswordEncryptor {
+
+    @Override
+    public String encrypt(String s) {
+        return Sm2Util.encrypt(s);
+    }
+
+    @Override
+    public boolean matches(String passwordToCheck, String storedPassword) {
+        return storedPassword.equals(Sm2Util.encrypt(passwordToCheck));
+    }
+
+    public static void main(String[] args) {
+        System.err.println(Sm2Util.encrypt("123456"));
+        String p = "047b7e46111cf7e3c0aebfd3c8cee903b679e345820a5525f8fe76f5a8045099fceaaf4ec3627ad3433e883a94ac5076e1e646dd6b104be4de0b659d04ee310aba26664c2ff6833e164f89194c580e6bb1454474b80aa8ddaa6ca7a93b58c41300a74940dae491";
+        System.err.println(Sm2Util.decrypt(p));
+    }
+}

+ 1 - 1
doc-common/src/main/java/com/doc/common/utils/encrypt/Sm3Util.java

@@ -30,7 +30,7 @@ public class Sm3Util {
     }
 
     public static void main(String[] args) throws Exception {
-        String message = "1qaz@WSX";
+        String message = "123456";
         String en1 = encrypt(message);
         String en2 = SecurityUtils.encryptPassword(en1);
         System.out.println("SM3 Digest 1: " + en1);