Skip to Content
Nueva versión 12 disponible 🎉

Valores admitidos

El cifrado de valores y matrices puede activarse de forma independiente para cada tipo de datos, de modo que puede proteger solo lo que importa y dejar el resto intacto. Consulte Configuración para saber cómo seleccionarlos.

Cifrados

TipoQué se protege
int32Constantes enteras de 32 bits: todas las formas de ldc.i4, incluidos los valores pequeños, -1 e int.MinValue/int.MaxValue. Como las constantes byte, sbyte, short, ushort, char, bool y enum de C# se compilan como cargas int32, esta opción las protege también.
int64Constantes enteras de 64 bits (long/ulong).
singleConstantes de punto flotante de 32 bits (float).
doubleConstantes de punto flotante de 64 bits (double) y literales decimal (cuyos componentes se almacenan como constantes enteras).
arrayMatrices en línea de elementos primitivos inicializadas a partir de un blob de datos: matrices de int, byte, sbyte, short, long, double, float, char, bool y de enumeración, como int[] a = { 1, 2, 3 };.

Sin cambios

Para que el programa ofuscado se comporte exactamente igual que el original, algunos datos en línea se dejan deliberadamente sin transformar y se emiten tal cual:

  • Matrices que no se inicializan a partir de un único blob de datos primitivos: matrices multidimensionales (int[,]), matrices escalonadas (int[][]) y matrices de estructuras o de otros tipos de referencia. El compilador las construye elemento a elemento y no a partir de un blob que pueda cifrarse, de modo que sus elementos individuales siguen sujetos al cifrado de valores numéricos cuando corresponde.
  • Constantes de cadena: de ellas se ocupa la función específica de Cifrado de cadenas, no el cifrado de valores.

Activar todos los tipos ofrece la protección más amplia; use un subconjunto cuando solo necesite ocultar clases concretas de datos o quiera reducir al mínimo el coste adicional en tiempo de ejecución descrito en Rendimiento.

Last updated on