https://blog.csdn.net/white_idiot/article/details/65937877 base64: https://blog.csdn.net/qq_20545367/article/details/79538530