B
    P•\e  ã               @   s   d dl mZ ddd„ZdS )é    )Úabsolute_importÚ c             C   sp   d}x>t | dƒD ]0\}}t|ƒ|> }|d? }|dM }|||B N }qW |t| ƒN }|dN }tt|ƒƒ ¡ dd… S )a§  
    Create a password hash from a given string for protecting a worksheet
    only. This will not work for encrypting a workbook.

    This method is based on the algorithm provided by
    Daniel Rentz of OpenOffice and the PEAR package
    Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>.
    See also http://blogs.msdn.com/b/ericwhite/archive/2008/02/23/the-legacy-hashing-algorithm-in-open-xml.aspx
    r   é   é   iÿ  iKÎ  é   N)Ú	enumerateÚordÚlenÚstrÚhexÚupper)Zplaintext_passwordZpasswordÚidxÚcharÚvalueZrotated_bits© r   ú8lib/python3.7/site-packages/openpyxl/utils/protection.pyÚhash_password   s    
r   N)r   )Z
__future__r   r   r   r   r   r   Ú<module>   s   