El relleno estructural significa alinear los datos en bloques de tamaño fijo para facilitar las operaciones de arquitecturas informáticas particulares, algoritmos criptográficos en consecuencia. Rellenamos (agregamos suficientes bytes) los datos operativos (que no están necesariamente estructurados) para servir a la máquina. Los bytes rellenos pueden interrumpir los datos originales, para identificar la cantidad de bytes rellenos, el siguiente enfoque ayuda.
Este es el relleno estructural tradicional con ‘espacios en blanco’ como entidades de relleno, lo que no nos ayudará a extraer los bytes precisos de los datos originales.
Ejemplo 1:
# padding with 'white spaces' def pad(text, block_size): # Calculate the missing number of bytes pad_size = block_size - len(text)% block_size # Add missing bytes with 'white spaces' fit_text = text + (" "*pad_size) return (fit_text) def main(): # text already contains 'white spaces' to # the Right, assumptions go wrong here block_size = 20 text = "HALL OF BYTES " print(pad(text, block_size)) main()
Producción :
'HALL OF BYTES '
Ejemplo 2:
Aquí se explica cómo conservar el número de bytes rellenado
# Python Program to retain padded bytes def pad(text, block_size): # Calculate the missing number of # bytes, say N pad_size = block_size - len(text)% block_size # Pad with character of N fit_text = text + chr(pad_size)*pad_size return (fit_text, ) def main(): text = "HALL OF BYTES" # structural unit of size 20 block_size = 20 print(pad(text, block_size)) # Driver Code main()
Producción :
'HALL OF BYTES\x07\x07\x07\x07\x07\x07\x07' # thus 7 bytes were padded.
# appropriate method to retain padded bytes def pad(text, block_size): # Calculate the missing number of # bytes, say N pad_size = block_size - len(text)% block_size # Pad with character of N fit_text = text + chr(pad_size)*pad_size return (fit_text, ) def main(): text = "PRECISELY RETAINED" # structural unit of size 20 block_size = 20 print(pad(text, block_size)) # Driver Code main()
Producción :
'PRECISELY RETAINED\x02\x02' # Thus two bytes were padded.
Publicación traducida automáticamente
Artículo escrito por poornapragnamath y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA