Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.schneiderelectric.plugin.fwupdate;
- import java.math.BigInteger;
- import java.nio.charset.Charset;
- import java.nio.charset.StandardCharsets;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class AdminPasswordService {
- private static final String M2M_PASSWORD_HASH_ARAMIS = "PzLaM2ZqOx5Ks3NwIcJ1Sd6NeUvH7WfBrY9AbGgVtTnGhVyTmG8EjVu0TkFi4QClRoDpX";
- private static final int M2M_PASSWORD_LENGTH = 12;
- private static final int M2M_PASSWORD_MAX_SEED_LENGTH = 6;
- public static void main(String[] args)
- {
- String MAC = "<PUT_MAC_HERE>";
- String GateWayKey = "<PUT_GATEWAYKEY_HERE>";
- System.out.printf(newM2mAdminPassword(MAC, GateWayKey));
- }
- private static String hashSHA(String string2) {
- MessageDigest messageDigest;
- try {
- messageDigest = MessageDigest.getInstance((String)"SHA-256");
- }
- catch (NoSuchAlgorithmException noSuchAlgorithmException) {
- noSuchAlgorithmException.printStackTrace();
- messageDigest = null;
- }
- messageDigest.update(string2.getBytes(StandardCharsets.UTF_8));
- byte[] arrby = messageDigest.digest();
- Object[] arrobject = new Object[]{new BigInteger(1, arrby)};
- return String.format((String)"%064x", (Object[])arrobject);
- }
- public static String m2mAdminPassword(String string2) {
- return AdminPasswordService.passwordFromMacAddress(string2);
- }
- public static String newM2mAdminPassword(String string2, String string3) {
- String string4 = AdminPasswordService.passwordFromMacAddress(string2);
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(string4);
- stringBuilder.append(string3);
- return AdminPasswordService.hashSHA(stringBuilder.toString());
- }
- private static String passwordFromMacAddress(String string2) {
- int n;
- int n2 = string2.length();
- char[] arrc = new char[12];
- if (string2 != null && n2 >= (n = 6)) {
- String string3 = string2.substring(string2.length() - n);
- int n3 = 0;
- while (n3 < n2 && n3 < n) {
- char c = string3.charAt(n3);
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("");
- stringBuilder.append(c);
- int n4 = Integer.parseInt((String)stringBuilder.toString(), (int)16);
- int n5 = 15 - n4 % 15;
- double d = n4;
- long l = 6L * Math.round((double)Math.pow((double)d, (double)3.0));
- int n6 = n3;
- int n7 = (int)(l + 9L * Math.round((double)Math.pow((double)d, (double)2.0)) + (long)(n4 * 7)) % 70;
- double d2 = n5;
- 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;
- int n9 = n6 * 2;
- arrc[n9] = M2M_PASSWORD_HASH_ARAMIS.charAt(n7);
- arrc[n9 + 1] = M2M_PASSWORD_HASH_ARAMIS.charAt(n8);
- n3 = n6 + 1;
- n = 6;
- }
- }
- return new String(arrc);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement