Как я могу в android encriptar IMEI в MD5?

я нуждаюсь encriptar IMEI в MD5, кто-то знает, как он был бы сделан? мне удается получить IMEI но для encriptación.

3
задан 24.06.2016, 05:51
3 ответа

Не encriptas в MD5, то, что ты делаешь, hashear в MD5. Ты можешь делать это с MessageDigest:

MessageDigest md = MessageDigest.getInstance("MD5");
md.update(imei.getBytes("UTF-8"));
byte[] digest = md.digest();
BigInteger bi = new BigInteger(1, digest);
// para tratar con el padding
String md5 = String.format("%0" + (digest.length << 1) + "x", bi);

Я верю в то, что MessageDigest#getInstance брось одну NoSuchAlgorithmException если пробует получать алгоритм несуществующего hasheado, так что ты будешь должен делать try catch.

4
ответ дан 24.11.2019, 14:05

Чтобы получать MD5 из IMEI , я делю тебе один mГ©todo посредством использования класса MessageDigest :

MГ©todo, чтобы производить cГіdigo MD5 цепи в Android:

    private String getMD5(final String s) {
            try{
                MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
                digest.update(s.getBytes());
                byte messageDigest[] = digest.digest();
                StringBuilder hexString = new StringBuilder();
                for(int i = 0; i < messageDigest.length; i++){
                    String h = Integer.toHexString(0xFF & messageDigest[i]);
                    while(h.length() < 2){
                        h = "0" + h;
                    }
                    hexString.append(h);
                }
                return hexString.toString();
            }catch (NoSuchAlgorithmException e){
                Log.e("MD5", "md5() NoSuchAlgorithmException: " + e.getMessage());
            }
            return "";
        }

ты можешь называть это, таким образом, чтобы получать MD5 (он hash не encriptaciГіn цепи) твоего IMEI:

String myIMEI_MD5 = getMD5(myIMEI);

Для получать IMEI из твоего устройства - серьезно форма используя класс TelephonyManager :

String myIMEI = "";
        TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        if (mTelephony.getDeviceId() != null){
            myIMEI = mTelephony.getDeviceId(); 
        }

Другой mГ©todo , который является , рекомендуемый посредством Settings. Secure. ANDROID_ID , который получает один, ПОЙДИТЕ как цепь Гєnica 64 бита hexadecimal.

String myIMEI = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID); 

помнит что добавляет разрешение в тебе AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
3
ответ дан 24.11.2019, 14:05

Другой mГ©todo, чтобы получать md5 цепи.

Приспосабливая cГіdigo с подсказками Андроид Студио 2.1

public static String getMD5(String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuilder hexString = new StringBuilder();
        for (byte aMessageDigest : messageDigest)
            hexString.append(Integer.toHexString(0xFF & aMessageDigest));
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return "";
}

Ваше использование

getMD5("número imei");
1
ответ дан 24.11.2019, 14:05