当前位置: 首页 > article >正文

https://github.com/langgenius/dify查看设置的apikey

现在我已经掌握了足够的信息来做一个完整清晰的分析。好的现在我来给出一个完整的分析。Difyprovider_model_credentials.encrypted_config解密分析整体加密架构Dify 使用 PKCS1_OAEP 加密来保护 API key。每个用户tenant都有一个唯一的密钥对确保 API key 的机密性。实际上从源码看Dify 用的是混合加密RSA AES下面是完整的加解密流程图### 核心源码解读加密逻辑api/libs/rsa.pyprefix_hybridbHYBRID:defencrypt(text:str,public_key:...)-bytes:aes_keyget_random_bytes(16)# 随机生成 AES-128 Keycipher_aesAES.new(aes_key,AES.MODE_EAX)ciphertext,tagcipher_aes.encrypt_and_digest(text.encode())# AES 加密明文cipher_rsagmpy2_pkcs10aep_cipher.new(rsa_key)enc_aes_keycipher_rsa.encrypt(aes_key)# RSA-OAEP 加密 AES Key# 拼接成最终密文returnprefix_hybridenc_aes_keycipher_aes.noncetagciphertext所以encrypted_config字段的字节结构为HYBRID: | enc_aes_key(256B) | nonce(16B) | tag(16B) | ciphertext(变长)解密逻辑api/core/provider_manager.py解密时系统通过encrypter.get_decrypt_decoding(tenant_id)获取租户的 RSA 私钥再调用encrypter.decrypt_token_with_decoding对provider_model_credentials中各字段的加密值进行解密。如何手动查看 API Key你需要同时具备两个东西1. 从数据库取出密文-- 找到目标记录SELECTid,tenant_id,model_name,encrypted_configFROMprovider_model_credentialsWHEREprovider_nameopenai;2. 取出对应租户的 RSA 私钥私钥存储位置取决于你的文件存储配置STORAGE_TYPE路径为privkeys/{tenant_id}/private.pem本地部署默认在api/storage/privkeys/{tenant_id}/private.pemS3/OSS 等在对应的 Bucket 中3. 用 Python 脚本解密fromCrypto.PublicKeyimportRSAfromCrypto.CipherimportAESimportbase64 prefixbHYBRID:defdecrypt_api_key(encrypted_hex_or_bytes:bytes,private_key_pem:bytes)-str:# 1. 去掉前缀dataencrypted_hex_or_bytesifdata.startswith(prefix):datadata[len(prefix):]# 2. 加载私钥rsa_keyRSA.import_key(private_key_pem)key_sizersa_key.size_in_bytes()# 256 bytes for RSA-2048# 3. 拆分各部分enc_aes_keydata[:key_size]noncedata[key_size:key_size16]tagdata[key_size16:key_size32]ciphertextdata[key_size32:]# 4. RSA-OAEP 解密 AES Keyfromlibsimportgmpy2_pkcs10aep_cipher# Dify 的 OAEP 实现cipher_rsagmpy2_pkcs10aep_cipher.new(rsa_key)aes_keycipher_rsa.decrypt(enc_aes_key)# 5. AES-EAX 解密明文cipher_aesAES.new(aes_key,AES.MODE_EAX,noncenonce)plaintextcipher_aes.decrypt_and_verify(ciphertext,tag)returnplaintext.decode()# 使用withopen(private.pem,rb)asf:pemf.read()# encrypted_config 字段值bytesapi_keydecrypt_api_key(encrypted_config_bytes,pem)print(api_key)注意事项关键点说明每个 tenant 独立密钥私钥按tenant_id分目录存放不同租户不能互解encrypted_config的格式provider_model_credentials表里存的是 JSON 序列化后的字段级加密每个敏感字段单独加密不是整条记录加密SECRET_KEY环境变量用于 AES-256 加密第三方 OAuth 凭证与 model credentials 是不同的加密路径不要直接改密钥替换 RSA 私钥后已存储的所有encrypted_config都将无法解密简单来说encrypted_config是 RSAAES 混合加密的密文解密必须持有对应tenant_id的 RSA 私钥文件这个文件在你的文件存储后端本地磁盘或对象存储中而不在数据库里。

相关文章:

https://github.com/langgenius/dify查看设置的apikey

现在我已经掌握了足够的信息,来做一个完整清晰的分析。好的,现在我来给出一个完整的分析。 Dify provider_model_credentials.encrypted_config 解密分析 整体加密架构 Dify 使用 PKCS1_OAEP 加密来保护 API key。每个用户(tenant&#xff09…...

AI LED调光控制器智能功率 MOSFET 完整选型方案

2026年随着 AI 技术在智能照明与调光控制中的深度渗透(如自适应色温、场景联动、人因节律照明),调光控制器对功率 MOSFET 提出更高要求:高精度PWM响应、超低导通损耗、高散热密度。微碧半导体(VBsemi)基于S…...

Windows 系统安装阶段快速创建本地账户操作说明

Windows 系统安装阶段快速创建本地账户操作说明 一、功能概述 本操作适用于 Windows 10/11 系统初始化联网配置(OOBE)界面,可直接绕过微软账户强制登录流程,一键启动本地账户创建向导,自定义设置系统用户名&#xff0c…...

对比直接采购,使用聚合平台在模型选型上带来的灵活性体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接采购,使用聚合平台在模型选型上带来的灵活性体验 过去,当我们需要为不同的任务寻找合适的大模型时…...

掌握CRC32校验码:从基础计算到高级逆向操作的完整指南

掌握CRC32校验码:从基础计算到高级逆向操作的完整指南 【免费下载链接】crc32 CRC32 tools: reverse, undo/rewind, and calculate hashes 项目地址: https://gitcode.com/gh_mirrors/cr/crc32 你是否曾遇到过需要验证文件完整性,却不知道如何下手…...

懒人必备!OpenClaw 汉化版一键配置上手教程

一、Windows 11 安装 OpenClaw 必看说明 OpenClaw(国内用户昵称"小龙虾")是一款广受欢迎的开源本地AI助手,GitHub星标数已超28万。它集成了多项实用功能:电脑自动操控、智能文件管理、浏览器自动化以及办公流程自动化等…...

Eviews面板数据建模保姆级教程:从Hausman检验到模型选择,一次讲透固定效应与随机效应

Eviews面板数据建模实战指南:从数据导入到模型选择的完整流程 面板数据分析作为计量经济学中的重要工具,能够同时捕捉时间和个体维度的信息。对于刚接触Eviews的研究者来说,如何正确建立面板模型往往令人困惑——从数据准备到模型选择&#x…...

别再乱用二值信号量了!FreeRTOS互斥量与递归互斥量实战避坑指南

FreeRTOS信号量实战:从优先级反转到递归互斥的深度避坑指南 在嵌入式实时系统中,任务间的同步与资源保护是开发者的必修课。FreeRTOS作为业界广泛采用的RTOS,其信号量机制看似简单,却隐藏着诸多陷阱。本文将带你直击二值信号量误用…...

为什么92%的AI音频项目在ElevenLabs声音库选型阶段就失败?——资深AI音频架构师12年踩坑复盘

更多请点击: https://intelliparadigm.com 第一章:为什么92%的AI音频项目在ElevenLabs声音库选型阶段就失败? ElevenLabs 的声音库看似丰富——超 500 个语音模型、多语言支持、情感调节滑块一应俱全,但真实项目落地中&#xff0…...

基于Taotoken构建每日大赛自动评分与反馈Agent工作流

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 基于Taotoken构建每日大赛自动评分与反馈Agent工作流 对于编程大赛、算法竞赛或日常训练的组织者与教练而言,每日处理大…...

OpenRGB终极指南:一站式免费控制所有RGB设备的完整解决方案

OpenRGB终极指南:一站式免费控制所有RGB设备的完整解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. R…...

Timer 时序大模型云服务来了!TimechoAI 开放邀请体验

本文约4000字,建议阅读5分钟 基于时序大模型 Timer,面向时序预测与智能分析的 TimechoAI 时序大模型云服务期待您参与内测!企业今天并不缺时序数据。真正稀缺的,是如何把这些持续积累的历史数据更低门槛地利用起来,为业…...

3分钟掌握TestDisk:开源数据恢复终极解决方案

3分钟掌握TestDisk:开源数据恢复终极解决方案 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 你是否曾因为误删除重要文件而彻夜难眠?是否经历过硬盘分区突然消失的恐慌?别…...

SpringBatch学习

/*** 示例一:Tasklet 方式*/ Configuration EnableBatchProcessing public class TaskletBatchConfig {private static final Logger logger LoggerFactory.getLogger(TaskletBatchConfig.class);Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredp…...

终极免费风扇控制软件:如何让你的电脑既安静又凉爽

终极免费风扇控制软件:如何让你的电脑既安静又凉爽 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

打磨与展望:RAG 的进阶技巧与避坑指南

走过了从加载文档到完整问答链的全程,恭喜你——你已经亲手建造出了一台可以和自己文档“对话”的 RAG 引擎。但任何一个上过生产环境的开发者都知道:原型和产品之间,往往隔着一条名为“细节”的护城河。 用户开始提各种刁钻问题,…...

Netflix 4K画质与杜比音效优化指南:解锁你的流媒体最佳体验

Netflix 4K画质与杜比音效优化指南:解锁你的流媒体最佳体验 【免费下载链接】netflix-4K-DDplus MicrosoftEdge(Chromium core) extension to play Netflix in 4K(Restricted)and DDplus audio 项目地址: https://gitcode.com/gh_mirrors/n…...

教育机构搭建AI辅助教学系统时如何通过Taotoken统一接口

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 教育机构搭建AI辅助教学系统时如何通过Taotoken统一接口 构建一个服务于师生的AI辅助教学系统,通常需要集成多种能力&a…...

除了卸载浏览器,ADB还能帮你清理哪些OPPO手机预装软件?附完整包名清单

深度优化OPPO手机:ADB卸载非必要预装应用全指南 对于追求系统纯净度的OPPO手机用户而言,预装应用往往占据宝贵存储空间并消耗后台资源。本文将系统介绍如何利用Android Debug Bridge(ADB)工具精准管理ColorOS系统中的各类预装组件…...

思源宋体CN:零成本打造专业中文排版的终极秘籍

思源宋体CN:零成本打造专业中文排版的终极秘籍 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为字体版权费用发愁?还在寻找既能商用又专业的中文字体&…...

基于Python与Telegram API构建消息抓取与备份工具实践

1. 项目概述与核心价值 最近在折腾一个挺有意思的小工具,起因是团队内部用Telegram群组做日常沟通和文件分享,时间一长,信息量爆炸,想找点历史资料或者特定文件简直是大海捞针。手动翻记录?效率低到令人发指。市面上虽…...

PCB线宽与电流关系详解:从原理到设计避坑指南

1. 项目概述:从一次烧板事故说起去年,我手头一个给电机驱动的小板子又冒烟了。排查了半天,发现不是芯片烧了,也不是电源接反了,问题出在一条给电机供电的电源走线上。那条线在板子上看着挺“粗壮”,但实际一…...

C#中使用MiniExcel 快速入门:读写 .xlsx 文件

背景介绍 报表绕不开 Excel。传统方案用 Microsoft.Office.Interop&#xff0c;需要安装 Office&#xff0c;且进程管理复杂。MiniExcel 是一个轻量级库&#xff08;< 1MB&#xff09;&#xff0c;通过直接操作 ZIP 压缩包&#xff08;.xlsx 本质是 ZIP&#xff09;实现读写…...

设计工程化实践:将设计思维转化为开发者技能的工具探索

1. 项目概述&#xff1a;当设计思维遇上代码技能最近在GitHub上看到一个挺有意思的项目&#xff0c;叫Arthurescc/design-fusion.skill。光看这个名字&#xff0c;就让我这个在设计和开发交叉领域摸爬滚打了十来年的老手眼前一亮。“Design Fusion”直译是“设计融合”&#xf…...

Spring Boot安全脚手架实战:快速集成认证授权与API防护

1. 项目概述&#xff1a;一个面向开发者的安全脚手架如果你是一名后端或全栈开发者&#xff0c;最近在启动一个新项目时&#xff0c;是不是总感觉有些“重复劳动”&#xff1f;比如&#xff0c;每次都要手动集成用户认证、权限管理、API安全防护、日志审计这些基础但至关重要的…...

基于SpringBoot+Vue的CRM客户管理系统毕设

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot与Vue框架的CRM客户管理系统以解决传统客户关系管理中存在的信息孤岛现象与业务流程低效问题。当前企业客户管理普遍面临数据…...

DevChat:无缝集成IDE的开源AI编程助手,提升开发效率

1. 项目概述&#xff1a;一个真正融入工作流的AI编程伙伴如果你和我一样&#xff0c;每天大部分时间都花在代码编辑器里&#xff0c;那你肯定也经历过这样的场景&#xff1a;想重构一段代码&#xff0c;却卡在命名上&#xff1b;写一个复杂的函数&#xff0c;需要反复查阅文档&…...

AI驱动的工业预测性维护技术实践:AI驱动的预测性维护系统通过多传感器融合(振动、温度、电流等)实时监测设备健康状态,结合TSN网络实现毫秒级数据传输

标签:预测性维护 PHM 工业AI 振动分析 TSN 设备管理 引言:设备算命先生的时代来了 “老张,你这台风机轴承怕是撑不过两周了。” 如果有个"设备算命先生"能掐指一算就说出这句话,工厂的设备经理们大概会把他供起来。但在2024年,这个"算命先生"真的出…...

Boss-Key:Windows下一键隐藏窗口的终极隐私保护工具

Boss-Key&#xff1a;Windows下一键隐藏窗口的终极隐私保护工具 【免费下载链接】Boss-Key 老板来了&#xff1f;快用Boss-Key老板键一键隐藏静音当前窗口&#xff01;上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公时代&#xf…...

4. 大型场馆大空间挡烟垂壁选型与布设

大型场馆、商业综合体、中庭展厅这类大空间建筑&#xff0c;空间跨度大、层高较高&#xff0c;传统隔断无法满足排烟分区要求&#xff0c;合理选用与布设挡烟垂壁&#xff0c;是解决大空间防排烟难题的核心途径。大空间场景在挡烟垂壁选型上&#xff0c;需优先适配大跨度、高空…...