Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nalifornia.mysql;
- import java.io.UnsupportedEncodingException;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class ForumIntegration {
- private static Connection connection;
- private static long lastConnection = System.currentTimeMillis();
- public static void init() {
- createConnection();
- }
- public static void createConnection() {
- try {
- Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
- connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/database", "username", "examplepassword");
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- public static void destroyConnection() {
- try {
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public static boolean verify(String username, String password) {
- try {
- Statement stat = connection.createStatement();
- ResultSet rs = stat.executeQuery("SELECT name, member_login_key, members_pass_hash, members_pass_salt FROM users WHERE name LIKE '" + username + "'");
- while (rs.next()) {
- String pass = rs.getString("members_pass_hash").toLowerCase();
- String salt = rs.getString("members_pass_salt");
- String encrypted = generate(password.toLowerCase());
- encrypted = generate(new StringBuilder(generate(salt)).append(encrypted).toString());
- if (pass.equals(encrypted)) {
- return true;
- }
- }
- rs.close();
- return false;
- } catch (Throwable e) {
- if (System.currentTimeMillis() - lastConnection > 10000) {
- destroyConnection();
- createConnection();
- lastConnection = System.currentTimeMillis();
- }
- }
- return false;
- }
- private static String convertToHex(byte[] data) {
- StringBuilder buf = new StringBuilder();
- for (byte aData : data) {
- int halfbyte = (aData >>> 4) & 0x0F;
- int two_halfs = 0;
- do {
- if ((0 <= halfbyte) && (halfbyte <= 9))
- buf.append((char) ('0' + halfbyte));
- else
- buf.append((char) ('a' + (halfbyte - 10)));
- halfbyte = aData & 0x0F;
- } while (two_halfs++ < 1);
- }
- return buf.toString();
- }
- public static String generate(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
- MessageDigest md = MessageDigest.getInstance("MD5");
- byte[] md5hash = new byte[32];
- md.update(text.getBytes("iso-8859-1"), 0, text.length());
- md5hash = md.digest();
- return convertToHex(md5hash);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement