当前位置:

首页 > 编程开发 > Python数据加密方法:hashlib模块详解

Python数据加密方法:hashlib模块详解

hashlib模块不可逆,适用于数据完整性校验、密码存储或数字签名,但不适用于需要解密的加密场景。1.hashlib提供单向哈希功能,用于生成固定长度的哈希值,无法还原原始数据;2.常见应用场景包括密码存储(存储哈希而非明文)、文件完整性校验;3.对于需要解密的数据加密,应使用secrets模块生成安全密钥或第三方库如cryptography实现对称或非对称加密;4.密码存储时建议结合盐(salt)和密钥派生函数(如PBKDF2_HMAC)以增强安全性;5.避免使用MD5或SHA-1等存在漏洞的算法,推荐

本文目录

    hashlib模块不可逆,适用于数据完整性校验、密码存储或数字签名,但不适用于需要解密的加密场景。1. hashlib提供单向哈希功能,用于生成固定长度的哈希值,无法还原原始数据;2. 常见应用场景包括密码存储(存储哈希而非明文)、文件完整性校验;3. 对于需要解密的数据加密,应使用secrets模块生成安全密钥或第三方库如cryptography实现对称或非对称加密;4. 密码存储时建议结合盐(salt)和密钥派生函数(如PBKDF2_HMAC)以增强安全性;5. 避免使用MD5或SHA-1等存在漏洞的算法,推荐使用SHA-256或SHA-512,并关注最新密码学标准。

    Python如何实现数据加密?hashlib模块应用

    Python中实现数据加密,如果你的目标是数据的完整性校验、密码存储或者数字签名,那么hashlib模块是核心工具,它提供了多种哈希算法。但需要明确的是,hashlib提供的是单向的哈希(散列)功能,这意味着它无法将哈希后的数据还原成原始数据,所以它不适用于需要可逆解密的数据保密场景。对于真正的数据加密(即需要解密回原数据),你需要转向其他库,比如Python标准库中的secrets模块(用于生成安全的随机数,间接用于密钥生成)或者更专业的第三方库如cryptography。

    Python如何实现数据加密?hashlib模块应用

    解决方案

    hashlib模块是Python标准库的一部分,它实现了一系列常见的哈希算法,比如MD5、SHA1、SHA256、SHA512等。这些算法的核心作用是接收任意长度的输入(数据),然后输出一个固定长度的哈希值(或称摘要、指纹)。这个过程是不可逆的。

    Python如何实现数据加密?hashlib模块应用

    最常见的应用场景就是密码存储。我们不会直接存储用户的明文密码,而是存储其哈希值。当用户登录时,将输入的密码进行同样的哈希处理,然后与数据库中存储的哈希值进行比对。如果一致,则认为密码正确。

    下面是一个使用hashlib进行数据哈希的基本示例:

    Python如何实现数据加密?hashlib模块应用
    import hashlib
    
    def hash_string(text_data, algorithm='sha256'):
        """
        对字符串数据进行哈希。
        :param text_data: 待哈希的字符串。
        :param algorithm: 哈希算法,如 'md5', 'sha1', 'sha256', 'sha512'。
        :return: 哈希值的十六进制表示。
        """
        if not isinstance(text_data, str):
            raise TypeError("输入数据必须是字符串。")
    
        # 字符串需要先编码成字节串
        data_bytes = text_data.encode('utf-8')
    
        hasher = hashlib.new(algorithm)
        hasher.update(data_bytes)
        return hasher.hexdigest()
    
    def hash_file(filepath, algorithm='sha256', chunk_size=4096):
        """
        对文件内容进行哈希,适用于大文件。
        :param filepath: 文件路径。
        :param algorithm: 哈希算法。
        :param chunk_size: 每次读取的文件块大小。
        :return: 文件的哈希值。
        """
        hasher = hashlib.new(algorithm)
        try:
            with open(filepath, 'rb') as f:
                while True:
                    chunk = f.read(chunk_size)
                    if not chunk:
                        break
                    hasher.update(chunk)
            return hasher.hexdigest()
        except FileNotFoundError:
            print(f"错误:文件 '{filepath}' 未找到。")
            return None
        except Exception as e:
            print(f"文件哈希过程中发生错误:{e}")
            return None
    
    # 示例使用
    my_password = "mySuperSecretPassword123"
    hashed_password = hash_string(my_password, 'sha256')
    print(f"原始密码: {my_password}")
    print(f"SHA256哈希: {hashed_password}")
    
    # 尝试使用不同的算法
    hashed_md5 = hash_string(my_password, 'md5')
    print(f"MD5哈希 (不推荐用于密码): {hashed_md5}")
    
    # 假设有一个文件 'example.txt'
    # with open('example.txt', 'w') as f:
    #     f.write("这是一段测试文本。\n")
    #     f.write("Hello World!\n")
    # file_hash = hash_file('example.txt', 'sha256')
    # print(f"文件 'example.txt' 的SHA256哈希: {file_hash}")
    

    在处理密码时,仅仅使用哈希是远远不够的。哈希函数是确定的,相同的输入总是产生相同的输出。这意味着如果两个用户设置了相同的密码,它们的哈希值也会相同。更糟糕的是,攻击者可以使用预先计算好的“彩虹表”来反查哈希值对应的明文密码。为了对抗这种攻击,我们引入了“盐”(Salt)的概念。

    加盐哈希(Salting)

    盐是一个随机生成的字符串,它会与原始密码混合(通常是拼接),然后再进行哈希。由于盐是随机且唯一的,即使两个用户设置了相同的密码,它们的加盐哈希值也会不同。同时,彩虹表对加盐哈希也无效,因为每个哈希值都包含了唯一的盐。

    import os
    import hashlib
    
    def hash_password_with_salt(password):
        """
        使用随机生成的盐对密码进行哈希。
        :param password: 用户明文密码。
        :return: 包含盐和哈希值的字符串,通常格式为 'salt$hash_value'。
        """
        # 生成一个随机的盐,通常是16字节(32个十六进制字符)
        salt = os.urandom(16)
        # 将盐和密码拼接后进行哈希
        # hashlib.pbkdf2_hmac 是更推荐的密码哈希算法,它加入了迭代次数来增加计算成本
        # 但这里我们先用一个简单的例子来演示盐的概念
        # 实际应用中,请使用 PBKDF2_HMAC 或 bcrypt/scrypt 等更强的算法
    
        # 简单示例:将盐和密码拼接后哈希
        # 注意:这种简单的拼接哈希仍然不够安全,仅为演示盐的概念
        salted_password = salt + password.encode('utf-8')
        hashed = hashlib.sha256(salted_password).hexdigest()
    
        # 将盐存储为十六进制字符串,便于存储和比对
        return f"{salt.hex()}${hashed}"
    
    def verify_password_with_salt(stored_password_info, user_input_password):
        """
        验证用户输入的密码是否与存储的哈希值匹配。
        :param stored_password_info: 存储的包含盐和哈希值的字符串。
        :param user_input_password: 用户输入的明文密码。
        :return: True 如果密码匹配,否则 False。
        """
        try:
            salt_hex, stored_hash = stored_password_info.split('$')
            salt = bytes.fromhex(salt_hex)
    
            # 重新计算用户输入密码的哈希值
            recalculated_salted_password = salt + user_input_password.encode('utf-8')
            recalculated_hash = hashlib.sha256(recalculated_salted_password).hexdigest()
    
            # 使用hmac.compare_digest()进行安全比对,防止时序攻击
            return hashlib.compare_digest(recalculated_hash, stored_hash)
        except ValueError:
            print("存储的密码格式不正确。")
            return False
    
    # 示例使用
    password = "mySecretPassword"
    stored_info = hash_password_with_salt(password)
    print(f"存储的密码信息 (盐$哈希): {stored_info}")
    
    # 验证
    is_correct = verify_password_with_salt(stored_info, "mySecretPassword")
    print(f"密码验证结果 (正确密码): {is_correct}")
    
    is_wrong = verify_password_with_salt(stored_info, "wrongPassword")
    print(f"密码验证结果 (错误密码): {is_wrong}")

    密钥派生函数(KDFs)

    对于密码哈希,更高级且推荐的方法是使用密钥派生函数(Key Derivation Functions, KDFs),如PBKDF2_HMAC。它们通过多次迭代哈希过程来增加计算的成本,使得暴力破解和彩虹表攻击变得非常困难。hashlib模块也提供了pbkdf2_hmac函数。

    import os
    import hashlib
    
    def hash_password_pbkdf2(password, iterations=100000):
        """
        使用PBKDF2_HMAC算法对密码进行哈希。
        :param password: 明文密码。
        :param iterations: 迭代次数,应足够大以增加破解难度。
        :return: 包含算法、迭代次数、盐和哈希值的字符串。
        """
        salt = os.urandom(16) # 16字节的盐
        hashed = hashlib.pbkdf2_hmac(
            'sha256',          # 哈希算法
            password.encode('utf-8'), # 密码需要编码
            salt,              # 盐
            iterations         # 迭代次数
        )
        # 存储格式通常是 'algorithm$iterations$salt_hex$hash_hex'
        return f"pbkdf2_sha256${iterations}${salt.hex()}${hashed.hex()}"
    
    def verify_password_pbkdf2(stored_password_info, user_input_password):
        """
        验证用户输入的密码是否与PBKDF2哈希匹配。
        """
        try:
            parts = stored_password_info.split('$')
            if len(parts) != 4 or parts[0] != 'pbkdf2_sha256':
                print("存储的密码格式不正确或算法不匹配。")
                return False
    
            algorithm, iterations_str, salt_hex, stored_hash_hex = parts
            iterations = int(iterations_str)
            salt = bytes.fromhex(salt_hex)
            stored_hash = bytes.fromhex(stored_hash_hex)
    
            recalculated_hash = hashlib.pbkdf2_hmac(
                'sha256',
                user_input_password.encode('utf-8'),
                salt,
                iterations
            )
    
            return hashlib.compare_digest(recalculated_hash, stored_hash)
        except (ValueError, IndexError):
            print("解析存储的密码信息时发生错误。")
            return False
    
    # 示例使用
    password = "mySecurePasswordForReal"
    stored_pbkdf2_info = hash_password_pbkdf2(password)
    print(f"PBKDF2哈希信息: {stored_pbkdf2_info}")
    
    is_correct_pbkdf2 = verify_password_pbkdf2(stored_pbkdf2_info, "mySecurePasswordForReal")
    print(f"PBKDF2验证结果 (正确密码): {is_correct_pbkdf2}")
    
    is_wrong_pbkdf2 = verify_password_pbkdf2(stored_pbkdf2_info, "wrongPasswordForReal")
    print(f"PBKDF2验证结果 (错误密码): {is_wrong_pbkdf2}")

    可以看到,hashlib在数据完整性校验和密码存储方面扮演着重要角色。

    为什么不能直接用hashlib对敏感数据进行可逆加密?

    这是一个很关键的问题,我发现很多人在初学数据安全时会混淆“哈希”和“加密”这两个概念。简单来说,hashlib模块提供的功能是哈希(Hashing),而不是加密(Encryption)。它们在目的和机制上有着本质的区别。

    哈希是一个单向过程,它将任意长度的输入数据转换成一个固定长度的输出(哈希值或摘要)。这个过程是不可逆的,也就是说,你无法从哈希值倒推出原始数据。它的主要设计目标是:

    1. 数据完整性校验: 任何对原始数据的微小改动都会导致哈希值发生巨大变化。这使得哈希值可以作为数据的“指纹”,用于验证数据在传输或存储过程中是否被篡改。
    2. 密码存储: 前面已经提到了,为了避免明文密码泄露,我们存储的是密码的哈希值。即使数据库被攻破,攻击者也无法直接获取用户的明文密码。
    3. 数字签名: 在数字签名中,通常是对消息的哈希值进行加密,而不是直接加密整个消息,以提高效率。

    而加密则是一个双向过程。它通过使用一个密钥将明文数据转换成密文,这个密文只有在拥有正确密钥的情况下才能被解密回原始明文。加密的主要目的是保护数据的机密性(Confidentiality),确保只有授权的人才能访问和理解数据。

    想象一下,哈希就像把一头牛放进绞肉机,你得到的是肉馅,但你无法从肉馅还原出原来的那头牛。而加密则像是一个上锁的箱子,你可以把东西放进去并锁上,然后用钥匙再把它打开。

    所以,如果你需要对敏感数据(比如用户的个人信息、银行卡号、医疗记录等)进行加密,使其在存储或传输过程中保持机密性,并且未来需要能够解密回来使用,那么hashlib是无能为力的。你需要使用专门的加密算法和对应的Python库,例如:

    • 对称加密(Symmetric Encryption): 比如AES(高级加密标准)。加密和解密使用同一个密钥。Python中可以通过cryptography库来实现。
    • 非对称加密(Asymmetric Encryption): 比如RSA。使用一对密钥:公钥用于加密,私钥用于解密(或反之用于数字签名)。同样,cryptography库是实现这类加密的强大工具。

    混淆这两者可能导致严重的安全漏洞。用哈希去“加密”数据,然后指望能解密回来,这本身就是个误区,也是不可能实现的。

    在Python中,如何选择合适的哈希算法进行数据保护?

    选择合适的哈希算法,绝不是拍脑袋决定的事,它关系到你的数据安全级别。在Python中使用hashlib时,我们有很多算法可以选择,但并非所有都适用于所有场景。

    首先,一个基本原则是:避免使用已知存在安全漏洞的算法。

    • MD5 (Message-Digest Algorithm 5): 尽管hashlib中仍然提供了md5(),但它已经被认为是不安全的了。MD5在2004年被发现存在碰撞漏洞,这意味着可以找到两个不同的输入数据,它们却产生相同的MD5哈希值。这对于数据完整性校验和数字签名来说是致命的。因此,MD5绝对不应该用于密码存储或任何需要高安全性的场景。
    • SHA-1 (Secure Hash Algorithm 1): 类似MD5,SHA-1在2017年也被谷歌团队成功实现了碰撞攻击。虽然比MD5更安全一些,但其安全性已大大降低。SHA-1也不再推荐用于新系统,尤其是在密码存储和数字签名方面。

    那么,我们应该选择什么呢?

    • SHA-2 系列 (SHA-256, SHA-512等): 这是目前广泛推荐和使用的哈希算法家族。SHA-256和SHA-512是其中的主流成员,它们提供了足够的安全性,目前尚未发现实际的碰撞攻击。

      • SHA-256: 生成256位的哈希值。在大多数通用场景下,它都是一个非常好的选择,平衡了安全性和性能。
      • SHA-512: 生成512位的哈希值。通常用于需要更高安全冗余或处理超大数据量的场景。在64位系统上,SHA-512的性能可能优于SHA-256。
      • SHA-384, SHA-224: 它们是SHA-512和SHA-256的截断版本,安全性与对应基础算法相当,只是输出长度不同。
    • 对于密码存储: 仅仅使用SHA-256或SHA-512进行一次性哈希是不够的。这是因为这些算法设计目标是计算速度快,这使得攻击者可以快速地进行暴力破解或字典攻击。前面提到的“加盐”是第一步,更关键的是要使用专门为密码存储设计的密钥派生函数(KDFs),它们故意设计成计算缓慢且消耗大量资源,以对抗暴力破解。

      • PBKDF2_HMAC: hashlib模块提供了pbkdf2_hmac()函数,这是一个很不错的选择。它通过指定大量的迭代次数(例如100,000次或更多)来增加计算成本,并结合随机生成的盐。
      • bcrypt 和 scrypt: 这两种是更现代、更强大的KDFs,它们不仅计算缓慢,还设计成消耗大量内存,进一步增加了GPU暴力破解的难度。Python中可以使用第三方库如passlib或bcrypt来实现。如果项目允许引入第三方库,它们通常是密码哈希的首选。

    总结选择策略:

    1. 数据完整性校验、文件指纹、简单唯一标识: 优先使用SHA-256或SHA-512。
    2. 密码存储: 绝不直接使用MD5、SHA-1、SHA-256或SHA-512进行单次哈希。 务必使用:
      • hashlib.pbkdf2_hmac()(推荐,需要合理设置迭代次数和盐)。
      • 或更优的第三方库如bcrypt、scrypt(通过passlib等库)。
    3. 避免: MD5、SHA-1。

    在实际应用中,始终关注最新的密码学研究进展和推荐标准,因为算法的安全性并非一成不变。

    除了哈希,Python还有哪些更高级的数据安全实践?

    当我们谈论数据安全,哈希只是其中一个环节,主要负责数据的完整性和身份验证(如密码校验)。但要实现全面的数据安全,特别是数据的机密性,我们需要更高级的加密技术和实践。Python生态系统在这方面提供了强大的支持,最核心的莫过于cryptography这个第三方库。

    cryptography库是一个功能丰富且设计良好的加密库,它提供了多种现代加密算法的实现,包括对称加密、非对称加密、数字签名等。它比Python标准库中的hashlib、hmac等更接近“真正的”加密,并且封装了许多复杂的密码学细节,让开发者可以更安全地使用。

    以下是一些更高级的数据安全实践及其在Python中的大致实现思路:

    1. 对称加密(Symmetric Encryption)

      • 概念: 加密和解密使用同一个密钥。速度快,适合对大量数据进行加密。
      • 常见算法: AES (Advanced Encryption Standard) 是目前最广泛使用的对称加密算法。
      • Python实践: 使用cryptography.fernet模块。Fernet是一个基于AES的简单API,它包含了密钥管理、初始化向量(IV)生成、消息认证码(MAC)等,极大地简化了安全加密的实现。
      from cryptography.fernet import Fernet
      
      # 1. 生成一个密钥(只生成一次并安全存储)
      # key = Fernet.generate_key()
      # print(f"Generated Key: {key.decode()}") # 打印出来只是为了演示,实际应安全存储
      
      # 假设我们已经有了密钥
      # 实际应用中,这个密钥应该从安全的地方加载,而不是硬编码
      key = b'your_secure_fernet_key_here_must_be_32_bytes_urlsafe' # 这是一个示例密钥,替换为真实生成的
      f = Fernet(key)
      
      # 2. 加密数据
      message = "这是我需要加密的绝密信息!"
      encrypted_message = f.encrypt(message.encode('utf-8'))
      print(f"原始消息: {message}")
      print(f"加密消息: {encrypted_message}")
      
      # 3. 解密数据
      decrypted_message = f.decrypt(encrypted_message).decode('utf-8')
      print(f"解密消息: {decrypted_message}")

      挑战: 密钥管理是最大的挑战。如何安全地生成、存储、分发和轮换密钥,是使用对称加密时必须认真考虑的问题。密钥一旦泄露,所有加密的数据都将不再安全。

    2. 非对称加密(Asymmetric Encryption)

      • 概念: 使用一对密钥:公钥和私钥

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    Cursor新增实时语音对话:可边通话边让Agent编程
    Cursor新增实时语音对话:可边通话边让Agent编程

    Cursor新增实时语音对话,支持在Agent运行任务时交流并听取进度,覆盖Agents Window、IDE、网页端与iOS,语音通话需登录账号并开启麦克风权限。

    VS Code 1.145更新:Cron调度、远程预览与补丁修复
    VS Code 1.145更新:Cron调度、远程预览与补丁修复

    VS Code 1.145新增本地Cron调度,扩展远程Agent预览能力;后续1.145.1与1.145.2修正遥测归属和事件路由。文中区分正式、预览及实验性功能。

    Ponytail适用人群与使用场景解析
    Ponytail适用人群与使用场景解析

    Ponytail面向已使用AI编程助手并希望优化代码质量的开发者,以及负责维护旧项目或审查AI生成代码的技术人员。它提供了一套可重复加载的开发判断规则,帮助用户减少冗余代码、梳理数据流并评估技术选型。虽然非编程人员也可提出任务,但仍需具备一定技术判断力来核对兼容性、行为逻辑及必要检查项。本文详解其在代码审查、旧项目维护及前端原生能力评估中的具体应用路径。

    Impeccable安装后命令无法使用排查指南
    Impeccable安装后命令无法使用排查指南

    面向在Cursor或Codex中配置Impeccable技能的用户,解决安装后命令无法调用、菜单不显示或钩子无响应的问题。本文梳理从终端环境检查到工具重载的完整路径:确认Node.js与PATH配置,区分npx终端命令与聊天助手指令(如/impeccable audit),通过/impeccable check和update管理版本,利用/impeccable doctor修复配置漂移,并单独核对/hooks状态以排除权限干扰,避免盲目重装导致配置覆盖。

    DeepSeek SuperAgent非程序员使用指南:门槛与协作建议
    DeepSeek SuperAgent非程序员使用指南:门槛与协作建议

    面向希望利用 DeepSeek SuperAgent 辅助开发但缺乏编程背景的用户,本文解析其实际使用门槛。虽然任务派发可通过自然语言完成,适合业务人员整理需求,但独立部署、环境配置及代码审阅仍需技术基础。文章说明安装时的账号权限管理要点,指导如何通过面板监控任务状态,并强调在无人负责技术维护时不宜盲目自动化,需由专业人员验收代码以确保安全。

    Ponytail在Claude Code中的用途:控制代码规模、审查改动与整理技术债务
    Ponytail在Claude Code中的用途:控制代码规模、审查改动与整理技术债务

    面向使用Claude Code进行开发的程序员,Ponytail插件旨在通过引导AI助手优先复用现有能力来控制新增代码规模。本文介绍其核心用途:在开发任务中减少不必要代码编写,通过“/ponytail-review”命令审查暂存改动的安全性与可维护性,以及利用“/ponytail-debt”整理带有明确限制的开发捷径和技术债务。使用前需根据安装方式确认宿主支持的具体命令和自动加载功能。

    Impeccable适合哪些人使用:开发者与团队的界面设计指南
    Impeccable适合哪些人使用:开发者与团队的界面设计指南

    Impeccable面向已使用AI编程工具并希望优化界面清晰度的个人开发者、前端工程师及产品维护团队。它不要求用户精通设计术语,但需能明确描述用户目标与限制条件。本文介绍三类典型应用场景:个人开发者利用shape命令梳理需求边界,避免开发蔓延;团队通过document命令提取视觉规则至DESIGN.md以保持风格一致;维护者使用harden命令检查表单等界面的边缘状态。适用前提是手头有真实的界面设计或改进需求。

    Graphify离线使用指南:纯代码构图与本地模型配置方法
    Graphify离线使用指南:纯代码构图与本地模型配置方法

    面向需要在无网或受限网络环境下使用Graphify的开发者,明确其离线运行的边界条件。纯代码构图和读取本地图谱可在依赖就绪后完全离线进行;文档语义处理需预先配置本地Ollama模型并指定后端。本文详解如何通过--code-only参数避免联网调用、如何准备本地模型环境,以及区分本地文件读取与远程MCP服务连接的关键步骤,帮助用户实现真正的本地化知识图谱构建。

    命名转换工具推荐:马上默、摩卡工具箱与UniKit对比
    命名转换工具推荐:马上默、摩卡工具箱与UniKit对比

    面向需要在camelCase、snake_case、kebab-case等格式间转换变量名和字段名的开发者,本文对比三款中文界面工具。马上默适合批量处理并支持词元拆分检查,能精细控制缩写与数字边界;摩卡工具箱界面简洁,聚焦四种常用风格快速互转;UniKit则一次性提供十种命名风格结果,便于横向比较。针对缩写切分和数字连接等常见差异,文章说明了各工具的适用场景及核对要点,帮助用户根据项目规范选择合适方案。

    ASCII码表查询与转换工具推荐:小鹿tools、Toolbase与易白工具
    ASCII码表查询与转换工具推荐:小鹿tools、Toolbase与易白工具

    面向需要查询ASCII码值或进行文本编码转换的开发人员,本文对比三款中文在线工具。小鹿tools提供完整的0-127标准码表及控制字符详解,支持多种进制并排查看;Toolbase适合快速筛选特定字符或码值,界面直观;易白工具专注于整段文本与十进制、十六进制等序列的互转,适用于串口数据核对。需注意扩展ASCII并非统一标准,处理中文或Emoji时应使用Unicode工具。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。