o
    HiZ                     @   sh   d Z ddlmZ ddlmZ ddlZddlmZ ddlZddlm	Z	m
Z
mZ dd Zd	d
 Zdd ZdS )u2   
对指定文件夹中的图片进行加密处理
    )oc_util)oc_yamlN)Image)encrypt_with_random_ivcalculate_file_md5data_to_hexc                  C   s&   t tjd d datj} t|  d S )Nu   /File混淆日志z.txta)openr   path_mixfile_mix_logpath_mix_projectencrypt_images)path r   C/data/storage/obfuscation/tool/ObjectiveC/oc_custom/custom_image.pyinit   s   r   c                 C   sj   t j| ddD ]+\}}}|D ]#}|tjvr&tjd }t j||}t| qt j||}t| qqdS )u=   
    遍历指定文件夹，对图片进行加密处理
    Ttopdownz.bundleN)	oswalkr   list_image_folderr   name_current_projectr   joinprocess_images_in_folder)r   rootdirs_name
image_pathr   r   r   r      s   



r   c                 C   s  t j| ddD ]\}}}|D ]}t j|}|d tjv rt j||}zt|}zt	|}t
 }	|j|	dd |	 }
W n3 tyr } z'td| d t	|d}| }
W d	   n1 scw   Y  W Y d	}~nd	}~ww t|
}|d
 }t j||}t	|d}|| W d	   n1 sw   Y  t|}td|||f  t | W q ty } ztd| d|  W Y d	}~qd	}~ww qqd	S )u@   
    处理文件夹中的图片：加密并替换原文件
    Tr      PNG)formatu   转换图片格式失败: u   ，使用原始二进制数据rbNr   wbu$   原图:%s-MD5:%s 被修改后MD5:%s
u   加密图片 u	    失败: )r   r   r   splitextr   list_image_typer   r   r   r	   ioBytesIOsavegetvalue	Exceptionprintreadr   writer   remove)r   r   r   filesr   	name_list	file_pathoriginal_md5img
img_buffer
image_data	img_errorfencrypted_datanew_file_namenew_pathencrypted_md5er   r   r   r   $   sF   

 r   )__doc__
ObjectiveCr   r   r   PILr   r&   !ObjectiveC.oc_custom.custom_toolsr   r   r   r   r   r   r   r   r   r   <module>   s    