Skip to content
Related Articles

Related Articles

Improve Article

Retaining the padded bytes of Structural Padding in Python

  • Last Updated : 10 Jul, 2020
Geek Week

Structural Padding means aligning the data into blocks of fixed size in order to ease the operations of particular Computer Architectures, Cryptographic algorithms accordingly. We pad(add enough bytes) the operational data (which is not necessarily structured) in order to serve the machine. Padded bytes may interrupt the original data, to identify the number of padded bytes, the following approach helps.

This is traditional Structural Padding with ‘White Spaces’ as padding entities, which will not help us extract the precise bytes of original data

Example 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()

Output :

'HALL OF BYTES       '

Example 2:



Here is how to retain the padded number of bytes




# 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()

Output :

'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()

Output :

'PRECISELY RETAINED\x02\x02' 
# Thus two bytes were padded.

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :