안전 검측quées y cómo implementarlo.
통합 시스템: 검증 통합 시스템,esútil cuando setrata de pagos financiaros o datos confidenciales,por loque debemos asegurarnos de que nuestro dispositivo seguro y confirable.Asíobtendremos la integridad de nuestro dispositivo mientras ejecutamos nuestra aplicación.Podemos compobar si el dispositivo estárooteado o contiene caballos de Troya.
검증 aplicaciones: 검증 la seguridad de las aplicaciones nos ayudar á a buscar 바이러스 o aplicaciones maliciosas.
URLCheck:para verificar url externas y verificar si son seguras
사용자 검사:paradetectarusuariosfalsos,podremosdetectarsilaaplicaciónestáinteractiuandoconunusuariofalso,porejempo,unrobotounrastreador.
tenemos dos niveles de seguridad 아파트
Nivel del sistema:signific que podremos verificar la seguridad del sistema,como el dispositivo rooteado y los caballos de Troya.
응용 프로그램 단계: 중요한 podremos verificar la seguridad del comportamiento y URL de nuestras applicaciones.
파소스
Crear una aplicación en AGC
Como la mayoría de las integraciones con HMS tenemos que crear una aplicación en la consola AGC,completar la información adecuada de la aplicación y activar el kit de detección de seguridad.Si no es la primera vez que usas un kit HMS,no serádifícil seguir estos pasos;델로 콘트라리오(sigue este enlace que te guiar á paso a paso).
https://developer.huawei.com/consumer/en/codelab/HMSPreparation/index.html#0
Conecta Android Studio 프로젝트
Crea el proyecto de Android Studio,ten en cuenta el nombre del paquete si es la primera vez que realizas este proceso sigue este enlace.
https://developer.huawei.com/consumer/en/codelab/HMSPreparation/index.html#1
Agrega la huella digital a tu aplicación AGC,la forma más fácil de lograr esto es usando Android Studio,en el lado derecho de la pantalla,ve a Gradle y haz clic en lo siguiente,en la pantalla de output obtendrás el mensaje con el SHA256 el cual deberás copiar a AGC.
실행기 el SDK de detección de seguridad
"변!Agreguemos el SDK de detección de seguridad y editemos el archivo proguard 규칙.Para agregar el SDK de detección de seguridad,debemos agregarlo como en esta imagen.
dependencies {
// Add the following line
implementation 'com.huawei.hms:safetydetect:5.0.2.300'
}
Crea tu interfaz de Usario 회사
Creéuna interfaz de usuario simple con un botón de llamada a la acción responsible de inicializar el proceso de conexión con la API.Puedes crear el tuyo propio pero si quieres copiar el mío aqítienes el XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/emui_color_gray_1"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="316dp"
android:text="Result:"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.29"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/check_button"
android:layout_width="155dp"
android:layout_height="71dp"
android:background="@color/colorPrimary"
android:text="Check"
android:textColor="@android:color/holo_blue_bright"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.631" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:fontFamily="sans-serif"
android:text="Safety Detection"
android:textColor="@color/colorAccent"
android:textSize="30sp"
android:textStyle="bold"
android:typeface="sans"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Deberíamos ver algo como esto
Obtener un valor nonce
Tenemos que obtener un valor nonce,pero?quésignific un valor nonce?En criptografía,un nonce es un número arbitrario que se puede usar solo una vez En una comunicación criptográfica.esp íritu a una palabra nonce, de ah íel nombre와 유사합니다.A menudo es un número aleatorio o pseudo aleatorio emittedo en un protocolo de autenticación para garantizar que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición.
El valor de nonce debe contener de 16 a 66 bytes y solo se puede usar una vez.
La API sysIntegrity tiene dos parámetros,uno es el valor nonce y el otro es el ID de La aplicación.Para recurparar su aplicación,puede obtenera desde La consola AGC.
Vamos 자동차 한 대
byte[] nonce = ("ADX2099" + System.currentTimeMillis()).getBytes();
SafetyDetect.getClient(this)
.sysIntegrity(nonce,APP_ID)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
e.printStackTrace();
}
})
.addOnSuccessListener(new OnSuccessListener<SysIntegrityResp>() {
@Override
public void onSuccess(SysIntegrityResp sysIntegrityResp) {
String sysResult = sysIntegrityResp.getResult();
String[] respoSplit = sysResult.split("\\.");
String jwsPayLoadStr =respoSplit[1];
String payloadDetail = new String(Base64.decode(jwsPayLoadStr.getBytes(), Base64.URL_SAFE));
Log.d("TAG1", sysResult);
}
});
}
Permíteme explicarte lo que estoy haciendo aqí.
Primero、como deberías notar、este código debería estar dentro de un método、pero te dejarédecidir cómo resolver esa parte.
En primer lugar,debemos notar que estamos usando el patrón builder para usar la detección de seguridad.Entonences estos son los pasos que estamos siguiendo
회사 명
Pase su ID de aplicación
실시 unoyente para eléxito y unoyente para el fracaso.
Si la llamada es exitosa,recibiremos el resultado de la verificación de integridad del sistema,esta respuesta es una cadena codecada en Base64 y consta de 3 partes
a) Encabezado 회사
b) 카가틸
c) 필마
Las tres partes se separan con\barras
"아홀라!Convirtamos nuestra respuesta en un objeto JSON,por supuesto,no olvide crear una instancia de su TextView
try{
JSONObject theObject = new JSONObject(payloadDetail);
final boolean basicIntegrity = theObject.getBoolean(BASIC_INTEGRITY);
resultTV.setText("" + basicIntegrity);
}catch (JSONException ex){
ex.printStackTrace();
}
결론
Coneste ejemplo aprendimos cómousar 안전 검사.
Reference
이 문제에 관하여(안전 검측quées y cómo implementarlo.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/huaweidevslatam/safety-detect-que-es-y-como-implementarlo-49jf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
"변!Agreguemos el SDK de detección de seguridad y editemos el archivo proguard 규칙.Para agregar el SDK de detección de seguridad,debemos agregarlo como en esta imagen.
dependencies {
// Add the following line
implementation 'com.huawei.hms:safetydetect:5.0.2.300'
}
Crea tu interfaz de Usario 회사
Creéuna interfaz de usuario simple con un botón de llamada a la acción responsible de inicializar el proceso de conexión con la API.Puedes crear el tuyo propio pero si quieres copiar el mío aqítienes el XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/emui_color_gray_1"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="316dp"
android:text="Result:"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.29"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/check_button"
android:layout_width="155dp"
android:layout_height="71dp"
android:background="@color/colorPrimary"
android:text="Check"
android:textColor="@android:color/holo_blue_bright"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.631" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:fontFamily="sans-serif"
android:text="Safety Detection"
android:textColor="@color/colorAccent"
android:textSize="30sp"
android:textStyle="bold"
android:typeface="sans"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Deberíamos ver algo como esto
Obtener un valor nonce
Tenemos que obtener un valor nonce,pero?quésignific un valor nonce?En criptografía,un nonce es un número arbitrario que se puede usar solo una vez En una comunicación criptográfica.esp íritu a una palabra nonce, de ah íel nombre와 유사합니다.A menudo es un número aleatorio o pseudo aleatorio emittedo en un protocolo de autenticación para garantizar que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición.
El valor de nonce debe contener de 16 a 66 bytes y solo se puede usar una vez.
La API sysIntegrity tiene dos parámetros,uno es el valor nonce y el otro es el ID de La aplicación.Para recurparar su aplicación,puede obtenera desde La consola AGC.
Vamos 자동차 한 대
byte[] nonce = ("ADX2099" + System.currentTimeMillis()).getBytes();
SafetyDetect.getClient(this)
.sysIntegrity(nonce,APP_ID)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
e.printStackTrace();
}
})
.addOnSuccessListener(new OnSuccessListener<SysIntegrityResp>() {
@Override
public void onSuccess(SysIntegrityResp sysIntegrityResp) {
String sysResult = sysIntegrityResp.getResult();
String[] respoSplit = sysResult.split("\\.");
String jwsPayLoadStr =respoSplit[1];
String payloadDetail = new String(Base64.decode(jwsPayLoadStr.getBytes(), Base64.URL_SAFE));
Log.d("TAG1", sysResult);
}
});
}
Permíteme explicarte lo que estoy haciendo aqí.
Primero、como deberías notar、este código debería estar dentro de un método、pero te dejarédecidir cómo resolver esa parte.
En primer lugar,debemos notar que estamos usando el patrón builder para usar la detección de seguridad.Entonences estos son los pasos que estamos siguiendo
회사 명
Pase su ID de aplicación
실시 unoyente para eléxito y unoyente para el fracaso.
Si la llamada es exitosa,recibiremos el resultado de la verificación de integridad del sistema,esta respuesta es una cadena codecada en Base64 y consta de 3 partes
a) Encabezado 회사
b) 카가틸
c) 필마
Las tres partes se separan con\barras
"아홀라!Convirtamos nuestra respuesta en un objeto JSON,por supuesto,no olvide crear una instancia de su TextView
try{
JSONObject theObject = new JSONObject(payloadDetail);
final boolean basicIntegrity = theObject.getBoolean(BASIC_INTEGRITY);
resultTV.setText("" + basicIntegrity);
}catch (JSONException ex){
ex.printStackTrace();
}
결론
Coneste ejemplo aprendimos cómousar 안전 검사.
Reference
이 문제에 관하여(안전 검측quées y cómo implementarlo.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/huaweidevslatam/safety-detect-que-es-y-como-implementarlo-49jf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/emui_color_gray_1"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="316dp"
android:text="Result:"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.29"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/check_button"
android:layout_width="155dp"
android:layout_height="71dp"
android:background="@color/colorPrimary"
android:text="Check"
android:textColor="@android:color/holo_blue_bright"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.631" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:fontFamily="sans-serif"
android:text="Safety Detection"
android:textColor="@color/colorAccent"
android:textSize="30sp"
android:textStyle="bold"
android:typeface="sans"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Tenemos que obtener un valor nonce,pero?quésignific un valor nonce?En criptografía,un nonce es un número arbitrario que se puede usar solo una vez En una comunicación criptográfica.esp íritu a una palabra nonce, de ah íel nombre와 유사합니다.A menudo es un número aleatorio o pseudo aleatorio emittedo en un protocolo de autenticación para garantizar que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición.
El valor de nonce debe contener de 16 a 66 bytes y solo se puede usar una vez.
La API sysIntegrity tiene dos parámetros,uno es el valor nonce y el otro es el ID de La aplicación.Para recurparar su aplicación,puede obtenera desde La consola AGC.
Vamos 자동차 한 대
byte[] nonce = ("ADX2099" + System.currentTimeMillis()).getBytes();
SafetyDetect.getClient(this)
.sysIntegrity(nonce,APP_ID)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
e.printStackTrace();
}
})
.addOnSuccessListener(new OnSuccessListener<SysIntegrityResp>() {
@Override
public void onSuccess(SysIntegrityResp sysIntegrityResp) {
String sysResult = sysIntegrityResp.getResult();
String[] respoSplit = sysResult.split("\\.");
String jwsPayLoadStr =respoSplit[1];
String payloadDetail = new String(Base64.decode(jwsPayLoadStr.getBytes(), Base64.URL_SAFE));
Log.d("TAG1", sysResult);
}
});
}
Permíteme explicarte lo que estoy haciendo aqí.Primero、como deberías notar、este código debería estar dentro de un método、pero te dejarédecidir cómo resolver esa parte.
En primer lugar,debemos notar que estamos usando el patrón builder para usar la detección de seguridad.Entonences estos son los pasos que estamos siguiendo
회사 명
Pase su ID de aplicación
실시 unoyente para eléxito y unoyente para el fracaso.
Si la llamada es exitosa,recibiremos el resultado de la verificación de integridad del sistema,esta respuesta es una cadena codecada en Base64 y consta de 3 partes
a) Encabezado 회사
b) 카가틸
c) 필마
Las tres partes se separan con\barras
"아홀라!Convirtamos nuestra respuesta en un objeto JSON,por supuesto,no olvide crear una instancia de su TextView
try{
JSONObject theObject = new JSONObject(payloadDetail);
final boolean basicIntegrity = theObject.getBoolean(BASIC_INTEGRITY);
resultTV.setText("" + basicIntegrity);
}catch (JSONException ex){
ex.printStackTrace();
}
결론
Coneste ejemplo aprendimos cómousar 안전 검사.
Reference
이 문제에 관하여(안전 검측quées y cómo implementarlo.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/huaweidevslatam/safety-detect-que-es-y-como-implementarlo-49jf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(안전 검측quées y cómo implementarlo.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/huaweidevslatam/safety-detect-que-es-y-como-implementarlo-49jf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)