Conservación de los bytes acolchados de Structural Padding en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *