• Base64


    一:base64的加密解密

    注意:base64非常容易被破解,仅适用于加密非关键信息的场合

    在Python3中的代码实现,需要加多一步byte转换,如下:

    import base64
    
    token = "63cc/s*_7@3.com/Ala/us:f0"
    encodestr = base64.b64encode(token.encode('utf-8'))
    print(encodestr)
    >>> b'NjNjYy9zKl83QDMuY29tL0FsYS91czpmMA=='
    print(str(encodestr,'utf-8'))
    >>> NjNjYy9zKl83QDMuY29tL0FsYS91czpmMA==
    
    code = "NjNjYy9zKl83QDMuY29tL0FsYS91czpmMA=="
    decodestr = base64.b64decode(code)
    print(decodestr)
    >>> b'63cc/s*_7@3.com/Ala/us:f0'
    print(str(decodestr, 'utf-8'))
    >>> 63cc/s*_7@3.com/Ala/us:f0

    二:base64出现换行

    Python中是不用担心字符串过长,base64加密后换行的问题,如果是java

    String bTemp = Base64.encodeBase64String("123".getBytes());
            bTemp = bTemp.replaceAll("[\s*	
    
    ]", "")

    可以拿到换行后的加密字符串,做以上操作。本人尝试过,似乎没有起到效果,可能姿势不对?所以不如根源上杜绝:

      换用Apache的 commons-codec.jar, Base64.encodeBase64String(byte[])得到的编码字符串是不带换行符的(本人未证实,欢迎指正)

    import org.apache.commons.codec.binary.Base64;
    String s = "asdwe123aqdasfdfeafe1234"
    new String(Base64.encodeBase64(s.getBytes()))
    或 Base64.encodeBase64String(
    s.getBytes())

    三:base64URL转义

      编码:1.去除尾部的“=” 2.把“+”替换成“-” 3.把“/”替换成“_”

      解码:1.把"-"替换成"+" 2.把"_"替换成"/"

         3.(计算BASE64URL编码长度)%4:

          a.结果为0,不做处理  b.结果为2,字符串添加"=="  c.结果为3,字符串添加"="

      Python中提供了urlsafe_b64encode和urlsafe_b64decode实现URL的转义:  

    print base64.b64encode('ixb7x1dxfbxefxff')
    >>> abcd++// 
    print base64.b64encode('ixb7x1dxfbxefxff', '-_') 
    >>> abcd--__ 
    print base64.urlsafe_b64encode('ixb7x1dxfbxefxff') 
    >>> abcd--__ 
    base64.urlsafe_b64decode('adcd--__') 
    >>> 'ixb7x1dxfbxefxff'

        

  • 相关阅读:
    Bootstrap(9) 巨幕页头缩略图和警告框组件
    Java使用点滴
    Bootstrap(8) 路径分页标签和徽章组件
    视频会议系统MCU服务器视频传输处理模式
    honeywell1900扫描枪的使用说明
    WebDev.WebServer20.exe应用程序错误
    UEFI引导过程及windows引导修复
    低分辨率的显示器模拟高分辨率显示模式
    IIS应用程序池权限与虚拟目录身份验证权限
    ADO.Net操作数据库的方式
  • 原文地址:https://www.cnblogs.com/sen-c7/p/9444518.html
Copyright © 2020-2023  润新知