Advertisement
penta42

Untitled

Mar 15th, 2022
610
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1. package com.schneiderelectric.plugin.fwupdate;
  2.  
  3. import java.math.BigInteger;
  4. import java.nio.charset.Charset;
  5. import java.nio.charset.StandardCharsets;
  6. import java.security.MessageDigest;
  7. import java.security.NoSuchAlgorithmException;
  8.  
  9. public class AdminPasswordService {
  10.     private static final String M2M_PASSWORD_HASH_ARAMIS = "PzLaM2ZqOx5Ks3NwIcJ1Sd6NeUvH7WfBrY9AbGgVtTnGhVyTmG8EjVu0TkFi4QClRoDpX";
  11.     private static final int M2M_PASSWORD_LENGTH = 12;
  12.     private static final int M2M_PASSWORD_MAX_SEED_LENGTH = 6;
  13.  
  14.     public static void main(String[] args)
  15.     {
  16.         String MAC = "<PUT_MAC_HERE>";
  17.         String GateWayKey = "<PUT_GATEWAYKEY_HERE>";
  18.         System.out.printf(newM2mAdminPassword(MAC, GateWayKey));
  19.     }
  20.    
  21.     private static String hashSHA(String string2) {
  22.         MessageDigest messageDigest;
  23.         try {
  24.             messageDigest = MessageDigest.getInstance((String)"SHA-256");
  25.         }
  26.         catch (NoSuchAlgorithmException noSuchAlgorithmException) {
  27.             noSuchAlgorithmException.printStackTrace();
  28.             messageDigest = null;
  29.         }
  30.         messageDigest.update(string2.getBytes(StandardCharsets.UTF_8));
  31.         byte[] arrby = messageDigest.digest();
  32.         Object[] arrobject = new Object[]{new BigInteger(1, arrby)};
  33.         return String.format((String)"%064x", (Object[])arrobject);
  34.     }
  35.  
  36.     public static String m2mAdminPassword(String string2) {
  37.         return AdminPasswordService.passwordFromMacAddress(string2);
  38.     }
  39.  
  40.     public static String newM2mAdminPassword(String string2, String string3) {
  41.         String string4 = AdminPasswordService.passwordFromMacAddress(string2);
  42.         StringBuilder stringBuilder = new StringBuilder();
  43.         stringBuilder.append(string4);
  44.         stringBuilder.append(string3);
  45.         return AdminPasswordService.hashSHA(stringBuilder.toString());
  46.     }
  47.  
  48.     private static String passwordFromMacAddress(String string2) {
  49.         int n;
  50.         int n2 = string2.length();
  51.         char[] arrc = new char[12];
  52.         if (string2 != null && n2 >= (n = 6)) {
  53.             String string3 = string2.substring(string2.length() - n);
  54.             int n3 = 0;
  55.             while (n3 < n2 && n3 < n) {
  56.                 char c = string3.charAt(n3);
  57.                 StringBuilder stringBuilder = new StringBuilder();
  58.                 stringBuilder.append("");
  59.                 stringBuilder.append(c);
  60.                 int n4 = Integer.parseInt((String)stringBuilder.toString(), (int)16);
  61.                 int n5 = 15 - n4 % 15;
  62.                 double d = n4;
  63.                 long l = 6L * Math.round((double)Math.pow((double)d, (double)3.0));
  64.                 int n6 = n3;
  65.                 int n7 = (int)(l + 9L * Math.round((double)Math.pow((double)d, (double)2.0)) + (long)(n4 * 7)) % 70;
  66.                 double d2 = n5;
  67.                 int n8 = (int)(8L * Math.round((double)Math.pow((double)d2, (double)3.0)) + 3L * Math.round((double)Math.pow((double)d2, (double)2.0)) + (long)(n5 * 5)) % 70;
  68.                 int n9 = n6 * 2;
  69.                 arrc[n9] = M2M_PASSWORD_HASH_ARAMIS.charAt(n7);
  70.                 arrc[n9 + 1] = M2M_PASSWORD_HASH_ARAMIS.charAt(n8);
  71.                 n3 = n6 + 1;
  72.                 n = 6;
  73.             }
  74.         }
  75.         return new String(arrc);
  76.     }
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement