首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将ASCII编码的SHA1散列( 40字节十六进制字符串)从40字节转换为20字节?

SHA1散列是一种加密算法,它将任意长度的数据转换为固定长度的40字节的十六进制字符串。要将40字节的SHA1散列转换为20字节,可以使用以下步骤:

  1. 将40字节的十六进制字符串转换为字节数组。每两个十六进制字符表示一个字节,因此可以将字符串拆分为20个字节的数组。
  2. 对于每个字节,将其转换为十进制表示。
  3. 将每个字节的十进制值转换为二进制表示。
  4. 从二进制表示中截取前8位,得到一个新的字节。
  5. 将这20个新的字节组合起来,得到一个20字节的字节数组。
  6. 将字节数组转换为十六进制字符串表示。

以下是一个示例代码,使用Python语言实现上述步骤:

代码语言:txt
复制
import binascii

def convert_sha1(sha1_hex):
    # 将40字节的十六进制字符串转换为字节数组
    sha1_bytes = binascii.unhexlify(sha1_hex)

    # 将每个字节转换为十进制表示,并截取前8位得到新的字节
    new_bytes = []
    for byte in sha1_bytes:
        new_byte = byte & 0xFF
        new_bytes.append(new_byte)

    # 将新的字节组合起来,得到20字节的字节数组
    new_sha1_bytes = bytes(new_bytes[:20])

    # 将字节数组转换为十六进制字符串表示
    new_sha1_hex = binascii.hexlify(new_sha1_bytes).decode('utf-8')

    return new_sha1_hex

# 示例用法
sha1_hex = "2ef7bde608ce5404e97d5f042f95f89f1c232871"
new_sha1_hex = convert_sha1(sha1_hex)
print(new_sha1_hex)

这个代码将输出转换后的20字节的十六进制字符串。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,我无法给出相关链接。但腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编码加密核验类命令

[TOC] 0x00 快速入门 0x01 加密编码 base64 命令 描述:使用 Base64 编码/解码文件或标准输入输出,数据以 RFC 3548 规定 Base64 字母格式进行编码。...还有其他核验方式只是校验长度不同sha256sum ,sha384sum, ha512sum; SHA1与md5类似是另一种常用校验和算法,它从给定输入文件中生成一个长度为40个字符十六进制 语法案例...53 4c 0a 0a S L \n \n xxd 命令 描述:用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制储,也可以把十六进制储转换成原来二进制形式...l : 输出几个字节后结束,显示几个字节数据  -p:以一个整块输出所有的hex, 不使用空格进行分割 -s [+][-]seek : 第几个字符开始 -u : 输出采用大写 -r: 反转操作,将16...字节(8*8 = 64个二进制) xxd -b -c8 src.c WeiyiGeek.xxd命令示例 #示例3.显示倒数15字节到末尾十六进制内容并采用大写显示 xxd -s -15 -u src.c

1.1K10

密码发展史以及常用编码算法介绍

盐(Salt),在密码学中,是指通过在密码任意固定位置插入特定字符串,让结果和使用原始密码结果不相符,这种过程称之为“加盐”。...(自维基百科) 答:函数(或算法,又称哈希函数,英语:Hash Function)是一种任何一种数据中创建小数字“指纹”方法。...值通常用来代表一个短随机字母和数字组成字符串; 好函数在输入域中很少出现冲突,在列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。...世界上没有两片完全相同树叶,也没有两个相同指纹,函数是用于数据中创建小数字指纹方法。...特点:为通过HTTP进行传输,UTF-8编码字节以%为前缀,其后用十六进制表示每个字节 %e2%89%a0等同于≠; 它可以表示Unicode标准种任何字符,且其编码第一个字节任然与ASCII码兼容

1.2K20
  • 密码发展史以及常用编码算法介绍

    盐(Salt),在密码学中,是指通过在密码任意固定位置插入特定字符串,让结果和使用原始密码结果不相符,这种过程称之为“加盐”。...(自维基百科) 答:函数(或算法,又称哈希函数,英语:Hash Function)是一种任何一种数据中创建小数字“指纹”方法。...值通常用来代表一个短随机字母和数字组成字符串; 好函数在输入域中很少出现冲突,在列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。...世界上没有两片完全相同树叶,也没有两个相同指纹,函数是用于数据中创建小数字指纹方法。...特点:为通过HTTP进行传输,UTF-8编码字节以%为前缀,其后用十六进制表示每个字节 %e2%89%a0等同于≠; 它可以表示Unicode标准种任何字符,且其编码第一个字节任然与ASCII码兼容

    1.8K20

    30余种加密编码类型密文特征分析(建议收藏)

    三、Base64换后比原有的字符串长1/3 Base64要求把每三个8Bit字节换为四个6Bit字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit字节,也就是说,...Base32使用了ASCII编码中可打印32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来二进制数据按照5个二进制位分为一组,由于传输数据单位是字节(即8个二进制位...因为Base32使用8个ASCII字符去编码原数据中5个字节数据,而Base64是使用4个ASCII字符去编码原数据中3个字节数据。...值 编码编码 0 0 8 8 1 1 9 9 2 2 10 A 3 3 11 B 4 4 12 C 5 5 13 D 6 6 14 E 7 7 15 F Base16编码是一个标准十六进制字符串.../加密、Unescape解码/解密、%u编码、%u解码 特征:以%u开头 Escape/Unescape加密解码/编码解码,又叫%u编码以往经验看编码字符串出现有"u",它是unicode编码,那么

    14.8K82

    30余种加密编码类型密文特征分析(建议收藏)

    三、Base64换后比原有的字符串长1/3 Base64要求把每三个8Bit字节换为四个6Bit字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit字节,也就是说,...Base32使用了ASCII编码中可打印32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来二进制数据按照5个二进制位分为一组,由于传输数据单位是字节(即8个二进制位...因为Base32使用8个ASCII字符去编码原数据中5个字节数据,而Base64是使用4个ASCII字符去编码原数据中3个字节数据。...值 编码编码 0 0 8 8 1 1 9 9 2 2 10 A 3 3 11 B 4 4 12 C 5 5 13 D 6 6 14 E 7 7 15 F Base16编码是一个标准十六进制字符串.../加密、Unescape解码/解密、%u编码、%u解码 特征:以%u开头 Escape/Unescape加密解码/编码解码,又叫%u编码以往经验看编码字符串出现有"u",它是unicode编码,那么

    70.4K826

    盘点Python加密解密模块hashlib7种加密算法

    ,它加密字符类型为二进制编码,所以直接加密字符串会报错。...MD5作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密格式(就是把一个任意长度字节串变换成一定长十六进制数字串)。...MD5是最常见摘要算法,速度很快,生成结果是固定128 bit字节,通常用一个32位16进制字符串表示。...res = md5.hexdigest() #返回字符型摘要信息 print(md5.digest())#返回字节摘要信息 print("md5加密结果:",res) 二、sha1 安全散算法,...SHA1结果是160 bit字节,通常用一个4016进制字符串表示 import hashlib string='任性90后boy' sha1 = hashlib.sha1() sha1.update

    2.1K30

    网络安全&密码学—python中各种加密算法

    单向加密(不可逆加密) 定义:通过算法将明文生成值,值是长度固定数据,与明文长度无关,且无法值还原出原文。 特点:常用于数字签名、消息认证、密码存储等场景,不需要密钥。...编码过程如下:首先将所有字符转换为ASCII码,然后将这些ASCII码转换为8位二进制数。接着,将每3个二进制数归为一组(不足3个在后面补0),形成24位,再拆分成4组,每组6位。...对于长度小于2^64任意输入,SHA1都能产生一个长度为160bit值,这比MD5多出了32位。因此,SHA1在安全性上相较于MD5有所提升,但其运算速度则相对较慢。...常见算法包括RSA(应用广泛)、ECC(适用于资源有限场景)、DSA(适用于数字签名)。 单向加密(不可逆加密) 通过算法将明文生成固定长度值,无法值还原原文。...二、Python中应用 Base64编码 将二进制数据转换为ASCII字符串,常用于文本数据编码和解码。 MD5和SHA-1加密 用于生成数据值,常用于密码存储、文件完整性验证等场景。

    21010

    【Golang】深究字符串——byte rune string到Unicode与UTF-8

    是必须得字符编码说起。 1. ASCII码 通过数字电路知识,我们知道使用二进制对信息进行编码与度量。...比如 张 字,unicode编码5F20,对应十六进制处于0000 0800-0000 FFFF中,也就是3个字节。...张 输出值24352是unicode 十六进制 5F20 十进制 24352 二进制101111100100000 存储方式是utf-8 uft-8编码:11100101 10111100 10100000...超出这个范围,go在转换时候,就会把多出来数据砍掉;但是runebyte,又有些不同:会先把runeUTF-8换为Unicode,由于Unicode依然超出了byte表示范围,所以取低8位,其余全部扔掉...Unicode字符 每个Unicode字符,在内存中是以utf-8形式存储 Unicode字符,输出[]rune,会把每个UTF-8换为Unicode后再输出 []byte()可以把字符串换为一个

    2.3K10

    常用消息摘要算法简介

    消息摘要算法也被称为哈希(Hash)算法或算法。 任何消息经过函数处理后,都会获得唯一值,这一过程称为 “消息摘要”,其值称为 “数字指纹”,其算法自然就是 “消息摘要算法”了。...但最终仍旧是会获得一个 128 位值。...如果将得到 160 位摘要信息换算成十六进制,可以得到一个 40 位(每 4 位二进制数转换为 1 位十六进制数)字符串。...512 HmacMD2 128 HmacMD4 128 HmacSHA224 224 经 MAC 算法得到摘要值也可以使用十六进制编码表示,其摘要值长度与参与实现算法摘要值长度相同。...例如,HmacSHA1算法得到摘要长度就是 SHA1 算法得到摘要长度,都是 160 位二进制数,换算成十六进制编码40 位。

    7.6K30

    常用几个PHP加密函数

    1、前言 PHP加密方式分为单项加密,对称加密,非对称加密这几类。   像常用MD5、hash、crypt、sha1这种就是单项加密,单项加密是不可逆。   ...(三)、sha1 string sha1 ( string str[,boolraw_output = false ] 1.跟md5很像,不同sha1()默认情况下返回40个字符值,传入参数性质一样...,第一个为加密字符串,第二个为raw_output布尔值,默认为false,如果设置为true,sha1()则会返回原始20 位原始格式报文摘要 2.sha1()也是单向加密,没有逆向解密算法 (...$data是要加密数据 hash加密也是不可逆,因为是给定一个不确定字符串返回特定长度字符串,这个本质意义上来说实现了单项加密。...之外所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

    1.4K20

    【Coding】聊聊字符编码那些事儿

    在Linux中,使用man命令可以查看ASCII表: //例如,字符"A"ASCII码是65,对应八进制数101,十六进制数则是40 ASCII码中128个字符分成了两个部分...值得注意几点: 2007年开始,Unicode已逐步取代ASCII成为了通用编码。 Python3默认采用Unicode编码,Python2默认采用ASCII码。...编码规则 Base64编码要求把3个8位字节(3*8=24)转换为4个6位字节(4*6=24),之后在6位前面补两个0,形成8位一个字节形式。...根据编码表进行转换,Base64有自己编码表: 以 s13为例,进行base64编码: 转换为ASCII码:115 49 51 转换为二进制格式:01110011...00110001 00110011 重新分为4组:011100 110011 000100 110011 开头补0换为十进制:28 51 4 51 根据编码表得到base64编码:c z E z 如何确定一个字符串是否是

    1.4K20

    Python体系练手项目200例(附源代码),练完可显著提升python水平(鲲鹏编程–Python教育新物种)

    1.十二 2.十八 3 十十六 4.字符串字节 5.转为字符串 6.十 ASCII 7.ASCII 十 8.转为字典 9.转为浮点类型 10.转为整型 11....转为集合 12.转为切片 13.元组 14.冻结集合 15.商和余数 16.幂和余 17.四舍五入 19.门牌号 18 查看变量所占字节20.排序函数 21.求和函数 22.计算表达式 23.真假...' 2.十八 十进制转换为八进制: >>> oct(9) '0o11' 3 十十六 十进制转换为十六进制: >>> hex(15) '0xf' 4.字符串字节 字符串换为字节类型...str(i) '100' 6.十 ASCII 十进制整数对应 ASCII 字符 chr(65) ‘A’ 7.ASCII ASCII 字符对应十进制数 >>> ord('...20.排序函数 排序: 21.求和函数 求和: 22.计算表达式 计算字符串型表达式值 23.真假 24.都为真 如果可迭代对象所有元素都为真,那么返回 True

    3.3K30

    常见字符集&乱码问题

    GBK字符集 作用:它是GB2312扩展,加入对繁体字支持,兼容GB2312。 位数:使用2个字节表示,可表示21886个字符。 范围:高字节81到FE,低字节40到FE。...BIG5字符集 作用:统一繁体字编码。 位数:使用2个字节表示,表示13053个汉字。 范围:高字节A1到F9,低字节40到7E,A1到FE。...范围:1字节00到7F; 2字节字节81到FE,低字节40到7E和80到FE;4字节第一三字节81到FE,第二四字节30到39。...MBCS 多字节 中文、日文及朝鲜语 GB18030 MBCS 多字节 各国语言 UNICODE,UCS DBCS 宽字节 编码转换: 要求:要知道当前内容编码格式和要转换为编码格式: 示例...手动编码成utf-8字符串 String param = new String(temp, "utf-8"); 原理:     相同内容在计算机中二进制编码是一样,所以在不同编码间内容传递时

    62820

    python 数据加密解密以及相关操作

    相关名词解释 HASH: 一般翻译为“”(也有直接音译为“哈希”),就是把任意长度输入(又叫做预映射,pre-image),通过算法,变成固定长度输出,该输出值就是值。...这种转换是一种压缩映射,也就是空间通常远小于输入空间,不同输入可能会列成相同输出,而不可能从值来唯一确认输入值。...base64 Y 该模块主要用于二进制数据与可打印ASCII字符之间转换操作,它提供了基于Base16, Base32, 和Base64算法以及实际标准Ascii85和Base85编码和解码函数。...这个属性值对于一个哈希对象来说是固定,md5:16,sha1(20), sha224(28) hash.block_size hash算法内部块字节大小 hash.name 当前hash对象对应哈希算法标准名称...digest()方法返回摘要信息是一个二进制格式字符串,其中可能包含非ASCII字符,包括NUL字节,该字符串长度可以通过哈希对象digest_size属性获取;而hexdigest()方法返回摘要信息是一个

    1.8K10

    Base64笔记

    首先,简单介绍一下Quoted-printable编码转换方式。它主要用于ACSII文本中夹杂少量非ASCII码字符情况,不适合于转换纯二进制文件。 它规定将每一个8位字节,转换为3个字符。...第一个字符是"="号,这是固定不变。 后面二个字符是二个十六进制数,分别代表了这个字节前四位和后四位数值。...举例来说,ASCII码中"换页键"(form feed)是12,二进制形式是00001100,写成十六进制就是0C,因此它编码值为"=0C"。"...="号ASCII值是61,二进制形式是00111101,因为它编码值是"=3D"。除了可打印ASCII码以外,所有其他字符都必须用这种方式进行转换。...所有可打印ASCII码字符(十进制值33到126)都保持原样不变,"="(十进制值61)除外。 3. 下面,详细介绍Base64编码转换方式。

    86840

    降低Redis内存占用

    ziplist是列表、、有序集合这三种不同类型对象一种非结构化表示,它会以序列化方式存储数据,这些序列化数据每次被读取时候都需要进行解码,每次写入时候也要进行编码。...2.3、性能问题   不管列表、、有序集合、集合,当超出限制条件后,就会转换为更为典型底层结构类型。因为随着紧凑结构体积不断变大,操作这些结构速度将会变得越来越慢。   ...ID 19 * 20 * @param $base string | 基础 21 * @param $key string | 要存储到分片键名 22...19 * 20 * @param $base string | 基础 21 * @param $key string | 要存储到分片键名 22 *...,不过需要注意是我们还需要对这两个索引进行相应处理   4、将索引当做ASCII码,将其转换为对应ASCII(0~255)所指定字符   5、使用前面所讲分片技术,定长分片string结构,将用户存储位置找出来

    3.6K10

    MySQL中加密函数学习--MySql语法

    若你想要储存一些由可能包含任意字节加密函数返回结果,使用BLOB而不是 CHAR 或VARCHAR ,从而避免由于结尾空格删除而改变一些数据值潜在问题。...因为 AES 是块级算法,使用填充将不均衡长度字符串编码,这样结果字符串长度算法为 16 * (trunc(string_length / 16) + 1)。...假如没有给定 key_str 参数, DES_DECRYPT() 会首先检查加密字符串第一个字节, 从而确定用来加密原始字符串DES密码关键字数字,之后DES关键字文件中读取关键字从而解密信息。...该值以32位十六进制数字二进制字符串形式返回, 若参数为 NULL 则会返回 NULL。例如,返回值可被用作关键字。...该值被作为40十六进制数字返回,而当参数为NULL 时则返回 NULL。这个函数一个可能用处就在于其作为关键字。你也可以将其作为存储密码密码安全函数使用。

    1.9K30
    领券