240802-Python代码混淆及加密的一些工具

news2024/9/21 20:37:44

在这里插入图片描述

1. 有哪些开源免费的工具,可以对Python代码加密

加密Python代码可以通过多种方法实现,尽管这些方法主要是为了保护代码不被轻易阅读或修改,但无法完全防止逆向工程。以下是一些开源免费的工具和方法,可以用于加密Python代码:

  1. PyArmor
    PyArmor是一款用于保护Python脚本的工具。它通过加密和混淆代码来保护Python脚本。PyArmor是一个开源工具,但也有一些高级功能需要购买许可证。

    官方链接:PyArmor

  2. Cython
    Cython是一种将Python代码编译为C扩展模块的工具,通过将Python代码转换为C代码并编译为二进制文件,可以增加代码的安全性和执行效率。

    官方链接:Cython

  3. py2exe
    py2exe可以将Python脚本打包成Windows可执行文件(.exe),从而保护代码。虽然py2exe并不直接加密代码,但通过将代码打包成二进制文件,增加了代码的安全性。

    官方链接:py2exe

  4. PyInstaller
    PyInstaller是一款将Python应用程序打包为独立可执行文件的工具,支持Windows、Mac和Linux平台。通过将代码打包成二进制文件,能起到一定的保护作用。

    官方链接:PyInstaller

  5. pyobfuscate
    pyobfuscate是一款Python代码混淆工具,通过混淆代码,使其变得难以阅读和理解。虽然这不是加密,但可以在一定程度上保护代码。

    官方链接:pyobfuscate

  6. shroud
    shroud是一个Python代码混淆和加密工具,可以混淆和加密Python代码以防止逆向工程和未经授权的使用。

    官方链接:shroud

这些工具都可以帮助你在一定程度上保护你的Python代码,但需要注意的是,任何形式的代码保护都不是绝对安全的,有经验的攻击者仍有可能通过逆向工程或其他技术手段破解代码。因此,除了代码加密外,还可以考虑其他安全措施,如代码审查、访问控制和监控等。


2. 哪些可以商业免费使用

以下是一些可以商业免费使用的Python代码保护工具和方法:

  1. Cython
    Cython 是一种将 Python 代码编译为 C 扩展模块的工具。它是开源的,并且可以商业免费使用。通过将 Python 代码转换为 C 代码并编译为二进制文件,可以增加代码的安全性和执行效率。

    官方链接:Cython

  2. PyInstaller
    PyInstaller 是一款将 Python 应用程序打包为独立可执行文件的工具,支持 Windows、Mac 和 Linux 平台。它是开源的,并且可以商业免费使用。通过将代码打包成二进制文件,能起到一定的保护作用。

    官方链接:PyInstaller

  3. py2exe
    py2exe 可以将 Python 脚本打包成 Windows 可执行文件(.exe),从而保护代码。py2exe 是开源的,并且可以商业免费使用。

    官方链接:py2exe

  4. PyArmor(基础功能):
    PyArmor 是一款用于保护 Python 脚本的工具,虽然它有高级功能需要购买许可证,但其基本功能是开源的,可以商业免费使用。PyArmor 通过加密和混淆代码来保护 Python 脚本。

    官方链接:PyArmor

  5. pyobfuscate
    pyobfuscate 是一款 Python 代码混淆工具,通过混淆代码,使其变得难以阅读和理解。虽然这不是加密,但可以在一定程度上保护代码。pyobfuscate 是开源的,并且可以商业免费使用。

    官方链接:pyobfuscate

  6. Shroud
    Shroud 是一个 Python 代码混淆和加密工具,可以混淆和加密 Python 代码以防止逆向工程和未经授权的使用。它是开源的,并且可以商业免费使用。

    官方链接:Shroud

这些工具和方法均为开源项目,可以在商业环境中免费使用。尽管如此,使用这些工具时请务必仔细阅读相关的许可协议,以确保符合所有许可要求和条件。


3. Pyarmor需要联网使用吗

Pyarmor 在某些功能上可能需要联网使用,但它的基本功能通常不需要联网。例如,你可以在本地使用 Pyarmor 来对 Python 脚本进行加密和保护,而不需要互联网连接。然而,以下情况可能需要联网:

  1. 更新软件:如果你需要更新 Pyarmor 到最新版本,可能需要联网下载更新包。
  2. 激活和验证许可证:如果你使用的是 Pyarmor 的商业版本,可能需要联网来激活和验证许可证。
  3. 下载依赖项:在某些情况下,如果 Pyarmor 需要额外的依赖项,这些依赖项可能需要从网络上下载。

对于本地加密和保护 Python 脚本的日常操作,通常不需要互联网连接。如果你需要使用高级功能或激活许可证,可能需要临时联网。


4. Pyarmor是商业软件吗

是的,Pyarmor 是一款商业软件。虽然它提供了免费试用版本,但其许多高级功能和全面使用都需要购买许可证。Pyarmor 的商业版本提供了更多的功能,例如:

  1. 无数量限制:保护的脚本数量不受限制。
  2. 自定义扩展:可以创建和使用自定义的扩展和插件。
  3. 更高级的保护措施:提供更强的脚本保护功能,防止反编译和破解。
  4. 支持更新和技术支持:购买许可证后,可以获得软件更新和官方技术支持。

你可以访问 Pyarmor 的官方网站 了解更多关于价格和许可证的信息。

5. 如何使用Pyarmor

看起来你在使用 Pyarmor 进行打包时遇到了参数不足的问题。pyarmor pack 命令需要指定一个要打包的脚本。以下是一个更详细的步骤来打包你的项目:

步骤 1:初始化项目

假设你的源代码在 source 目录下,主入口脚本是 main.py。首先初始化项目:

pyarmor init --src=source --entry=main.py

步骤 2:加密代码

你需要指定要加密的脚本文件。例如,如果你要打包并加密 main.py 文件,可以这样做:

pyarmor pack -x " --exclude config" -e " --onefile" main.py

在上述命令中,main.py 是你要打包的脚本文件。

详细命令解释

  • pyarmor pack:打包命令。
  • -x " --exclude config":排除 config 目录(可选,根据你的项目结构调整)。
  • -e " --onefile":生成一个单文件的可执行文件。
  • main.py:你要打包的主脚本文件。

完整示例

假设你的项目结构如下:

/Projects/test_pyarmor/
├── source/
│   ├── module1.py
│   ├── module2.py
│   └── main.py
├── config/
│   ├── settings.py
│   └── config.json
└── pyarmor_config.json

在项目根目录下运行以下命令:

pyarmor init --src=source --entry=main.py
pyarmor pack -x " --exclude config" -e " --onefile" source/main.py

注意事项

  1. 确认安装的 Pyarmor 版本:确认你使用的是正确的版本(在命令行输入 pyarmor --version 查看版本号)。
  2. 许可证生成(可选):如果需要许可证控制,可以生成许可证并在打包时指定许可证文件。
  3. 路径正确性:确保路径和文件名正确无误。

运行打包后的文件

打包后,生成的文件通常会位于 dist 目录中,可以通过以下命令运行:

python dist/main.py

通过上述步骤,你应该能够成功使用 Pyarmor 8.0+ 进行代码加密和打包。如果还有其他问题,请提供更多的错误信息或上下文。

6. 我把dist文件夹给别人使用,别人可以破解我的python代码吗

使用 Pyarmor 加密 Python 代码确实可以提升代码的安全性,但是没有任何加密方法是完全不可破解的。使用 Pyarmor 加密代码主要是为了增加破解的难度和成本。以下是一些提高 Pyarmor 加密代码安全性的方法和注意事项:

提高 Pyarmor 加密代码的安全性

  1. 启用高级混淆模式
    在加密时启用高级混淆模式,增加破解难度。

    pyarmor pack -x " --exclude config" -e " --onefile" --advanced 2 source/main.py
    
  2. 使用强力加密选项
    配置 Pyarmor 使用更强的加密选项。

    {
        "obf_code": 1,
        "obf_mod": 2,
        "wrap_mode": 1,
        "advanced_mode": 1,
        "enable_runtime": 1
    }
    

    pyarmor_config.json 文件中添加这些选项。

  3. 生成绑定机器的许可证
    生成绑定特定机器的许可证,这样即使代码被破解,也只能在特定的机器上运行。

    pyarmor licenses -e 2024-12-31 -b "mac_address"
    pyarmor pack -x " --exclude config" -e " --onefile" --with-license licenses/license.lic source/main.py
    
  4. 定期更新和变更加密策略
    定期更改加密策略和重新加密代码,以防止长期使用同一套加密方案被破解。

  5. 隐藏关键数据和逻辑
    在代码中将关键数据和逻辑进行分散和混淆,避免重要信息集中暴露。

使用 Pyarmor 加密的代码仍然存在风险

尽管以上方法可以提高加密代码的安全性,但仍然不能完全杜绝被破解的风险。熟练的攻击者仍然有可能通过各种手段(如反编译、动态分析等)破解加密代码。因此,除了技术手段外,还可以考虑以下策略:

  • 法律手段:通过版权声明和许可证协议来保护代码,增加法律层面的保护。
  • 商业手段:采用软件即服务(SaaS)的模式,将关键业务逻辑放在服务器端,通过 API 提供服务,而不是将所有代码分发到客户端。

7. Cthon应用举例

Cython是一个可以将Python代码转换为C代码的工具,从而提高性能和实现代码混淆(即代码加密)。以下是使用Cython对Python代码进行加密的基本步骤:

安装Cython

首先,确保你已经安装了Cython。你可以使用pip来安装它:

pip install cython

创建Python代码文件

假设你有一个名为my_script.py的Python文件,你希望加密这个文件。

# my_script.py
def hello():
    print("Hello, world!")

编写Cython配置文件

创建一个名为setup.py的文件,用于配置Cython的构建过程:

# setup.py
from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("my_script.py"),
)

编译Python代码

在命令行中运行以下命令,将Python代码编译为C扩展模块:

python setup.py build_ext --inplace

这将生成一个共享库文件(例如my_script.cpython-<version>-<platform>.so),你可以使用这个文件而不是原始的Python脚本。

使用编译后的代码

你可以在Python代码中直接导入并使用编译后的模块:

# 使用编译后的模块
import my_script
my_script.hello()

删除原始Python文件

为了确保代码加密,你可以删除原始的my_script.py文件,只保留编译后的共享库文件。

完整示例

  1. 创建my_script.py文件:

    def hello():
        print("Hello, world!")
    
  2. 创建setup.py文件:

    from setuptools import setup
    from Cython.Build import cythonize
    
    setup(
        ext_modules=cythonize("my_script.py"),
    )
    
  3. 运行编译命令:

    python setup.py build_ext --inplace
    
  4. 导入并使用编译后的模块:

    import my_script
    my_script.hello()
    

通过这种方式,你可以实现对Python代码的基本加密,虽然这种方法主要用于性能优化,但也提供了一定程度的代码保护。

总结

Pyarmor 可以显著增加破解代码的难度,但无法完全杜绝破解的可能性。通过结合技术手段、法律手段和商业模式,可以最大限度地保护你的 Python 代码。

8. Py2exe应用举例

py2exe 是一个将 Python 脚本转换为独立的 Windows 可执行文件的工具。以下是一个简单的示例,展示如何使用 py2exe 将一个 Python 脚本打包成可执行文件。

安装 py2exe

首先,确保你已经安装了 py2exe。你可以使用 pip 来安装它:

pip install py2exe

创建 Python 脚本

假设你有一个名为 my_script.py 的 Python 脚本,你希望将其转换为可执行文件。

# my_script.py
def main():
    print("Hello, world!")

if __name__ == "__main__":
    main()

创建 setup.py 文件

创建一个名为 setup.py 的文件,用于配置 py2exe 的打包过程:

# setup.py
from distutils.core import setup
import py2exe

setup(
    console=['my_script.py']
)

运行 py2exe

在命令行中运行以下命令,将 Python 脚本打包为可执行文件:

python setup.py py2exe

检查生成的可执行文件

运行上述命令后,你会在项目目录下看到一个 dist 文件夹,其中包含生成的 my_script.exe 文件。

完整示例

  1. 创建 my_script.py 文件:

    def main():
        print("Hello, world!")
    
    if __name__ == "__main__":
        main()
    
  2. 创建 setup.py 文件:

    from distutils.core import setup
    import py2exe
    
    setup(
        console=['my_script.py']
    )
    
  3. 运行打包命令:

    python setup.py py2exe
    
  4. 运行生成的可执行文件:
    dist 文件夹中找到 my_script.exe,双击运行它,或者在命令行中运行:

    dist\my_script.exe
    

这样,你就可以将 Python 脚本打包为一个独立的 Windows 可执行文件。这个可执行文件可以在没有 Python 环境的机器上运行。

8. Pyinstaller应用举例

PyInstaller 是一个将 Python 程序打包成独立的可执行文件的工具。以下是一个简单的示例,展示如何使用 PyInstaller 将一个 Python 脚本打包成可执行文件。

安装 PyInstaller

首先,确保你已经安装了 PyInstaller。你可以使用 pip 来安装它:

pip install pyinstaller

创建 Python 脚本

假设你有一个名为 my_script.py 的 Python 脚本,你希望将其转换为可执行文件。

# my_script.py
def main():
    print("Hello, world!")

if __name__ == "__main__":
    main()

使用 PyInstaller 打包脚本

在命令行中运行以下命令,将 Python 脚本打包为可执行文件:

pyinstaller --onefile my_script.py

这个命令将创建一个单个可执行文件,其中 --onefile 参数指定将所有文件打包到一个独立的可执行文件中。

检查生成的可执行文件

运行上述命令后,你会在项目目录下看到一个 dist 文件夹,其中包含生成的 my_script.exe 文件。

完整示例

  1. 创建 my_script.py 文件:

    def main():
        print("Hello, world!")
    
    if __name__ == "__main__":
        main()
    
  2. 使用 PyInstaller 进行打包:

    pyinstaller --onefile my_script.py
    
  3. 运行生成的可执行文件:
    dist 文件夹中找到 my_script.exe,双击运行它,或者在命令行中运行:

    dist\my_script.exe
    

更多选项

PyInstaller 提供了许多选项来定制生成的可执行文件。以下是一些常用选项:

  • --onefile:将所有文件打包到一个独立的可执行文件中。
  • --windowed:生成一个没有控制台窗口的 GUI 应用程序(仅适用于 GUI 应用)。
  • --add-data:将额外的数据文件打包到可执行文件中。例如,--add-data 'data.txt;.'

使用配置文件

你还可以通过配置文件(spec 文件)来定制打包过程。以下是一个简单的 spec 文件示例:

  1. 生成 spec 文件:

    pyinstaller my_script.py --onefile --name my_application
    
  2. 编辑生成的 my_script.spec 文件:

    # -*- mode: python ; coding: utf-8 -*-
    
    block_cipher = None
    
    a = Analysis(
        ['my_script.py'],
        pathex=[],
        binaries=[],
        datas=[],
        hiddenimports=[],
        hookspath=[],
        runtime_hooks=[],
        excludes=[],
        win_no_prefer_redirects=False,
        win_private_assemblies=False,
        cipher=block_cipher,
    )
    pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
    
    exe = EXE(
        pyz,
        a.scripts,
        [],
        exclude_binaries=True,
        name='my_application',
        debug=False,
        bootloader_ignore_signals=False,
        strip=False,
        upx=True,
        console=True,
    )
    coll = COLLECT(
        exe,
        a.binaries,
        a.zipfiles,
        a.datas,
        strip=False,
        upx=True,
        upx_exclude=[],
        name='my_application',
    )
    
  3. 使用 spec 文件进行打包:

    pyinstaller my_script.spec
    

通过这种方式,你可以将 Python 脚本打包为一个独立的可执行文件,可以在没有 Python 环境的机器上运行。

9. pyobfuscate应用举例

pyobfuscate 是一个用于混淆 Python 代码的工具,目的是使代码更难以阅读和理解,从而保护代码的知识产权。以下是一个使用 pyobfuscate 进行代码混淆的示例。

安装 pyobfuscate

首先,确保你已经安装了 pyobfuscate。你可以使用 pip 来安装它:

pip install pyobfuscate

创建 Python 脚本

假设你有一个名为 my_script.py 的 Python 脚本,你希望将其混淆。

# my_script.py
def greet(name):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    greet("world")

使用 pyobfuscate 进行混淆

运行以下命令对 my_script.py 进行混淆:

pyobfuscate my_script.py -o obfuscated_script.py

这个命令将生成一个名为 obfuscated_script.py 的文件,其中包含混淆后的代码。

检查混淆后的代码

打开 obfuscated_script.py 文件,你会看到混淆后的代码,它变得更加难以阅读和理解。

完整示例

  1. 创建 my_script.py 文件:

    def greet(name):
        print(f"Hello, {name}!")
    
    if __name__ == "__main__":
        greet("world")
    
  2. 运行混淆命令:

    pyobfuscate my_script.py -o obfuscated_script.py
    
  3. 检查混淆后的代码:
    打开 obfuscated_script.py 文件,内容可能类似于:

    # obfuscated_script.py
    def _obf_1(name):
        print(f"Hello, {name}!")
    
    if __name__ == "__main__":
        _obf_1("world")
    

使用混淆后的代码

你可以像使用原始代码一样使用混淆后的代码。它的功能应该与原始代码完全相同,只是变量名和函数名被混淆了。

# 使用混淆后的代码
import obfuscated_script

obfuscated_script._obf_1("world")

通过这种方式,你可以使用 pyobfuscate 对 Python 代码进行混淆,从而保护你的代码不被轻易理解和复制。

10. shroud应用举例

Shroud 是一个用于混淆 Python 代码的工具,旨在保护代码的知识产权和敏感信息。以下是如何使用 Shroud 进行代码混淆的示例。

安装 Shroud

首先,确保你已经安装了 Shroud。你可以从 Shroud 的 GitHub 页面 下载并安装它。以下是安装步骤:

  1. 克隆 Shroud 仓库:

    git clone https://github.com/ovidiucp/Shroud.git
    
  2. 进入 Shroud 目录并安装:

    cd Shroud
    python setup.py install
    

创建 Python 脚本

假设你有一个名为 my_script.py 的 Python 脚本,你希望将其混淆。

# my_script.py
def greet(name):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    greet("world")

使用 Shroud 进行混淆

运行以下命令对 my_script.py 进行混淆:

shroud my_script.py -o obfuscated_script.py

这个命令将生成一个名为 obfuscated_script.py 的文件,其中包含混淆后的代码。

检查混淆后的代码

打开 obfuscated_script.py 文件,你会看到混淆后的代码,它变得更加难以阅读和理解。

完整示例

  1. 创建 my_script.py 文件:

    def greet(name):
        print(f"Hello, {name}!")
    
    if __name__ == "__main__":
        greet("world")
    
  2. 运行混淆命令:

    shroud my_script.py -o obfuscated_script.py
    
  3. 检查混淆后的代码:
    打开 obfuscated_script.py 文件,内容可能类似于:

    # obfuscated_script.py
    def _shroud_1(name):
        print(f"Hello, {name}!")
    
    if __name__ == "__main__":
        _shroud_1("world")
    

使用混淆后的代码

你可以像使用原始代码一样使用混淆后的代码。它的功能应该与原始代码完全相同,只是变量名和函数名被混淆了。

# 使用混淆后的代码
import obfuscated_script

obfuscated_script._shroud_1("world")

通过这种方式,你可以使用 Shroud 对 Python 代码进行混淆,从而保护你的代码不被轻易理解和复制。如果在安装和使用 Shroud 过程中遇到问题,可以参考 Shroud 的 GitHub 页面 上的文档和问题讨论。

参考文献

  • pyarmor,一个超级厉害的 Python 库! - 知乎
  • 5. 许可模式和许可证 — Pyarmor 8.5.10 文档
  • Pyarmor 8.5 Documentation — Pyarmor 8.5.11 documentation
  • Tuple index out of range with Python 3.10 and pyinstaller 5.0.dev0 · Issue #6301 · pyinstaller/pyinstaller · GitHub
    在这里插入图片描述
  • Exe packaging issue · Issue #6954 · gradio-app/gradio · GitHub
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊ChatGLM-6B的源码分析

基于ChatGLM-6B第一版&#xff0c;要注意还有ChatGLM2-6B以及ChatGLM3-6B PrefixEncoder 作用&#xff1a;在微调时&#xff08;以P-Tuning V2为例&#xff09;&#xff0c;方法训练时冻结模型的全部参数&#xff0c;只激活PrefixEncoder的参数。 其源码如下&#xff0c;整体来…

Python数值计算(16)——Hermite插值

1. 概述 不管是前面介绍到拉格朗日插值还是牛顿插值&#xff0c;拟合的函数比线性插值更加“优秀”&#xff0c;即它们都是连续可导的&#xff0c;但是&#xff0c;有时拟合还有这样的要求&#xff0c;就是除了在给定点处的函数值要相等外&#xff0c;还要求在这些指定点处的导…

fastjson-小于1.2.47绕过

参考视频&#xff1a;fastjson反序列化漏洞3-<1.2.47绕过_哔哩哔哩_bilibili 分析版本 fastjson1.2.24 JDK 8u141 分析流程 分析fastjson1.2.25更新的源码&#xff0c;用JsonBcel链跟进 先看修改的地方 fastjson1.2.24 if (key JSON.DEFAULT_TYPE_KEY && !…

鸿蒙(API 12 Beta2版)NDK开发【JSVM-API简介】

JSVM-API简介 场景介绍 HarmonyOS JSVM-API是基于标准JS引擎提供的一套稳定的ABI&#xff0c;为开发者提供了较为完整的JS引擎能力&#xff0c;包括创建和销毁引擎&#xff0c;执行JS代码&#xff0c;JS/C交互等关键能力。 通过JSVM-API&#xff0c;开发者可以在应用运行期间…

大语言模型时代的挑战与机遇:青年发展、教育变革与就业前景

摘要: 当前,大语言模型技术的崛起正在对多个领域带来深远影响,其中教育与就业便是重点受影响领域之一。本文旨在深入探究大语言模型对青年群体发展、教育体系变革以及就业前景的影响,并提出相应的应对措施与建议。 通过运用社会认知理论、建构主义教育理论、技能匹配理论等学…

基于单片机的多功能视力保护器设计

摘要&#xff1a;眼睛是人心灵的窗户&#xff0c;现在信息网络技术的发展&#xff0c;手机成了人们的必备之物&#xff0c;青少年不良的习惯导致现在视力问题严重。越来越多的视力保护产品得到了研发&#xff0c;其中基于单片机的新型视力保护装置&#xff0c;为视力保护产生了…

作用域和链接属性

是什么决定了两个同名变量是否会发生冲突&#xff1f; 是作用域。 goto 语句的作用域是&#xff1f;答&#xff1a;goto 语句受函数作用域&#xff08;function scope&#xff09;所限制&#xff0c;因此 goto 语句仅能在函数体内部跳转&#xff0c;不能跨函数跳跃。 全局变…

【雅思报考流程】教你报名雅思考试 | 保姆级雅思报考指导教程!

官网 1.注册 首先进行注册 剩下正常填写即可&#xff0c;注册完毕会给邮箱发送确认邮件需要确认一下以及用户号这个很重要需要妥善保存 2.充值 会看到不同的类别&#xff0c;其中雅思考试费第一个是标准的雅思考试&#xff0c;第二个是英国签证的UKVI要看去英国上不上语言…

精通推荐算法16:特征交叉之PNN

1 背景 Deep Crossing通过“Embedding MLP”的范式&#xff0c;奠定了深度学习在推荐算法中的重要地位&#xff0c;引领了一股学术界和工业界不断应用和优化深度学习推荐算法的风潮。上海交通大学提出了PNN模型&#xff0c;通过在Embedding层之后引入一个Product层&#xff0…

实战大数据:分布式大数据分析处理系统的开发与应用

&#x1f482; 个人网站:【 摸鱼游戏】【网址导航】【神级代码资源网站】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

对 Redis 的认识还停留在 4.x 版本?7.0 全新特性很惊艳!

我是码哥&#xff0c;可以叫我靓仔。我人生中的第一本书《Redis 高手心法》出版了&#xff01; 作为当今广受欢迎的内存数据库&#xff0c;Redis 以其卓越的性能和广泛的应用场景著称。 掌握 Redis 技术几乎成为每位开发人员、测试人员和运维人员的看家本领&#xff01; 大约…

查物流信息用什么软件

在电子商务日益繁荣的今天&#xff0c;快递物流信息的查询成为了我们日常生活中不可或缺的一部分。无论是网购达人还是商家&#xff0c;都需要随时掌握货物的物流动态。然而&#xff0c;如何快速、准确地查询物流信息却是一个令人头疼的问题。今天&#xff0c;我将为大家介绍一…

使用ASH诊断Oracle解析故障

英文原文在&#xff1a;Diagnosing Parsing Issue with ASH 解析&#xff0c;尤其是硬解析&#xff0c;是非生产性操作&#xff0c;会消耗大量系统资源&#xff0c;导致库缓存争用。ASH&#xff08;Active Session History&#xff09;可以通过其采样机制来诊断和分析过度的解…

MySQL--插入、更新与删除数据

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、插入数据 1、为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值&#xff0c;其语法&#xff1a; inser…

Gradle 统一管理依赖

BOM 介绍 BOM 是 Bill of Material 的简写&#xff0c;表示物料清单。BOM 使我们在使用 Maven 或 Gradle 构建项目时对于依赖版本的统一变得更加规范&#xff0c;升级依赖版本更容易。 比如我们使用 SpringBoot 和 SpringCloud 做项目时&#xff0c;可以使用他们发布的 BOM …

CIFAR-10 数据集图像分类与可视化

数据准备 CIFAR-10 and CIFAR-100 datasets (toronto.edu)在上述网站中下载Python版本的CIFAR-10数据集。 下载后的压缩包解压后会得到几个文件如下&#xff1a; 对应的data_batch_1 ~ data_batch_5 是划分好的训练数据&#xff0c;每个文件里包含10000张图片&#xff0c;test…

基于SpringBoot + Vue的前后端分离项目-外包平台

项目名称&#xff1a;外包平台 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csdn地址&#xff1a;程序员云翼-CSDN博客 1.项目技术栈&#xff1a; 前后端分离的项目 后端&#xff1a;Springboot MybatisPlus 前端&#xff1a;Vue …

达梦数据库安装(DM8)新版 windows11下安装及超详细使用教程

windows11下达梦数据库安装 1、安装参考链接2、存在问题2.1新建表空间失败&#xff0c;详情错误号: -70142.2创建表、视图等 1、安装参考链接 https://blog.csdn.net/u014096024/article/details/134722013 2、存在问题 2.1新建表空间失败&#xff0c;详情错误号: -7014 解决…

掌握 LINQ:通过示例解释 C# 中强大的 LINQ的集运算

文章目录 集运算符原理实战示例1. Union2. Intersect3. Except4. ExceptWith5. Concat6. Distinct 注意事项总结 在C#中&#xff0c;LINQ&#xff08;Language Integrated Query&#xff09;提供了丰富的集合操作功能&#xff0c;使得对集合数据进行查询、过滤、排序等操作变得…