Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. package nalifornia.mysql;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4. import java.security.MessageDigest;
  5. import java.security.NoSuchAlgorithmException;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11.  
  12. public class ForumIntegration {
  13.  
  14. private static Connection connection;
  15.  
  16. private static long lastConnection = System.currentTimeMillis();
  17.  
  18. public static void init() {
  19. createConnection();
  20. }
  21.  
  22. public static void createConnection() {
  23. try {
  24. Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
  25. connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/database", "username", "examplepassword");
  26. } catch (Throwable e) {
  27. e.printStackTrace();
  28. }
  29. }
  30.  
  31. public static void destroyConnection() {
  32. try {
  33. connection.close();
  34. } catch (SQLException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38.  
  39. public static boolean verify(String username, String password) {
  40. try {
  41. Statement stat = connection.createStatement();
  42. ResultSet rs = stat.executeQuery("SELECT name, member_login_key, members_pass_hash, members_pass_salt FROM users WHERE name LIKE '" + username + "'");
  43. while (rs.next()) {
  44. String pass = rs.getString("members_pass_hash").toLowerCase();
  45. String salt = rs.getString("members_pass_salt");
  46.  
  47. String encrypted = generate(password.toLowerCase());
  48. encrypted = generate(new StringBuilder(generate(salt)).append(encrypted).toString());
  49. if (pass.equals(encrypted)) {
  50. return true;
  51. }
  52. }
  53. rs.close();
  54. return false;
  55. } catch (Throwable e) {
  56. if (System.currentTimeMillis() - lastConnection > 10000) {
  57. destroyConnection();
  58. createConnection();
  59. lastConnection = System.currentTimeMillis();
  60. }
  61. }
  62. return false;
  63. }
  64.  
  65. private static String convertToHex(byte[] data) {
  66. StringBuilder buf = new StringBuilder();
  67. for (byte aData : data) {
  68. int halfbyte = (aData >>> 4) & 0x0F;
  69. int two_halfs = 0;
  70. do {
  71. if ((0 <= halfbyte) && (halfbyte <= 9))
  72. buf.append((char) ('0' + halfbyte));
  73. else
  74. buf.append((char) ('a' + (halfbyte - 10)));
  75. halfbyte = aData & 0x0F;
  76. } while (two_halfs++ < 1);
  77. }
  78. return buf.toString();
  79. }
  80.  
  81. public static String generate(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
  82. MessageDigest md = MessageDigest.getInstance("MD5");
  83. byte[] md5hash = new byte[32];
  84. md.update(text.getBytes("iso-8859-1"), 0, text.length());
  85. md5hash = md.digest();
  86. return convertToHex(md5hash);
  87. }
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement