应用软件安全编程--24不要使用硬编码密匙

当程序中使用硬编码加密密匙时,所有项目开发人员都可以查看该密匙,甚至如果攻击者能够获取 程序 class文件,可通过反编译得到密匙,硬编码加密密匙会大大降低系统安全性。

对于避免使用硬编码密匙的情况,示例1给出了不规范用法(Java 语言)示例。示例2给出了规范 用法(Java 语言)示例。

示例1:private static String encryptionKey ="dfashsdsdfsdgagascv";byte[] keyBytes = encryptionKey.getBytes();SecretKeySpec key = new SecretKeySpec(keyBytes,"AES");Cipher encryptCipher = Cipher.getInstance("AES");encryptCipher.init(Cipher.ENCRYPT  MODE,key);

上述代码使用硬编码加密密钥执行 AES 加密。

程序应采用不小于8个字节的随机生成的字符串作为密匙。

示例2:KeyGeneratorkeyGen = KeyGenerator.getInstance("AES");keyGen.init(128,new SecureRandom(password.getBytes()));SecretKeysecretKey = kgen.generateKey();byte[] keyBytes = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(keyBytes,"AES");Cipher encryptCipher = Cipher.getInstance("AES");encryptCipher.init(Cipher.ENCRYPT  MODE,key);

上述代码使用 KeyGenerator 来生成密匙。

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

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

相关文章

jQUery(基本介绍+示例代码)

一、JQUery基本介绍和特点 jQuery 是一个快速、轻量级、跨浏览器的 JavaScript 库。它简化了在网页开发中处理诸多任务的过程,提供了易于使用的 API,使得开发者能够更容易地操作 HTML 文档、处理事件、执行动画、发送 AJAX 请求等。 以下是一些 jQuery…

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显,国家对网络安全人才的需求持续增长,其中,网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代,企业为了应对日益增长的攻击威胁,一般都在大量部署安全产品、…

PyInstaller 如何 将第三方库打包到可执行文件

PyInstaller 是一个非常流行的 Python 打包工具,它可以将你的 Python 程序以及其依赖项打包成一个可执行文件。如果你想将第三方库打包到可执行文件中,你可以按照以下步骤操作: 首先,确保你已经安装了 PyInstaller。如果没有&…

uview-plus u-picker的defaultIndexs修改后无效的问题

uniapp项目中使用了uview-plus组件库,在使用u-picker组件时,发现其默认的选中属性 defaultIndex是一次性的,修改后无法响应,解决办法就是在u-picker源码中修改这个属性的watch,源码位置在uni_modules/uview-plus/components/u-pi…

Hive 定义变量 变量赋值 引用变量

Hive 定义变量 变量赋值 引用变量 变量 hive 中变量和属性命名空间 命名空间权限描述hivevar读写用户自定义变量hiveconf读写hive相关配置属性system读写java定义额配置属性env只读shell环境定义的环境变量 语法 Java对这个除env命名空间内容具有可读可写权利; …

Qt如何解析JSON格式

Qt 5.15 版本以后&#xff0c;推荐使用 QJsonDocument 来解析 JSON 数据。 直接贴代码&#xff1a; #include <QJsonDocument> #include <QJsonObject> #include <QFile>// 从文件中读取 JSON 数据 QFile file("data.json"); file.open(QIODevi…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(十一)

COUNT() 计数函数 COUNT() 函数返回匹配指定条件的行数。 语法&#xff1a; 1.返回指定列的字段值条数 SELECT COUNT(column_name) FROM table_name;2.返回整表数据行条数 SELECT COUNT(*) FROM table_name;3.返回指定列去重后的字段值条数 SELECT COUNT(DISTINCT column_…

Leetcode 第 372 场周赛题解

Leetcode 第 372 场周赛题解 Leetcode 第 372 场周赛题解题目1&#xff1a;2937. 使三个字符串相等思路代码复杂度分析 题目2&#xff1a;2938. 区分黑球与白球思路代码复杂度分析 题目3&#xff1a;2939. 最大异或乘积思路代码复杂度分析 题目4&#xff1a;2940. 找到 Alice 和…

vatee万腾的科技奇点:Vatee创新力引领数字未来

在数字时代的涌动潮流中&#xff0c;Vatee万腾显露出一颗科技的奇点之心&#xff0c;其创新力正引领着数字未来的前沿。随着科技不断演进&#xff0c;Vatee万腾敏锐地捕捉到了科技的契机&#xff0c;展现出独特的创新视野&#xff0c;为数字化未来勾勒出了一幅令人瞩目的画卷。…

使用frp搭建内网穿透服务

使用frp搭建内网穿透服务 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 1.下载frp 下载地址 2.服务端安装 …

[Linux] shell脚本相关知识

一、shell脚本基础 1.1 shell脚本的作用 shell将人类使用的高级语言翻译成二进制&#xff0c;再将二进制翻译成高级语言。换句话就是人类写了一个命令集合&#xff0c;然后用bash去翻译给硬件执行。 linux中常见的shell&#xff1a; bash:基于gun的框架下发展的shell csh:类…

同为科技(TOWE)智能机柜PDU助力上海华为数据中心完善机房末端配电

智能时代加速而来&#xff0c;最大的需求是算力&#xff0c;最关键的基础设施是数据中心。作为一家在信息通信领域拥有多年经验和技术积累的公司&#xff0c;华为在全国多个地区都设有数据中心&#xff0c;如知名的贵州贵安华为云全球总部、内蒙古乌兰察布华为数据中心等&#…

pnpm 管理依赖包是如何节省磁盘空间的?

npm 存在的问题 我们经常使用 npm 来管理 node 项目中的包&#xff0c;从 package.json 中读取配置将依赖下载到本地&#xff0c;以保障项目的正常运行。 当项目数量多时&#xff0c;这样的包管理方式会非常的占用电脑内存。由于每个项目都有属于自己的依赖&#xff0c;每个项…

什么是多域名证书?

多域名证书是指同一个证书中包含多个域名&#xff0c;能够在多个站点之间共享一份证书&#xff0c;实现一个站点对应多个域名的情况。多域名证书非常适合需要跨多个站点部署的应用&#xff0c;例如企业的子站点、博客等。 特点 多域名证书的优点包括以下几个方面&#xff1a;…

【软件工程_软件工程项目管理】课后题

选择 1、( A )不属于项目的活动。 A.罐头产品的生产 B.一种新型罐头产品的发展 C.罐头产品的试制 D.罐头产品的营销策划 2、WBS&#xff08;任务分解结构&#xff09;非常重要&#xff0c;因为下列原因&#xff0c;除了&#xff08;D &#xff09; A.帮助组织工作 B.防止遗漏工…

python使用timm创建模型出现connect error

使用timm创建模型会出现网络连接等错误&#xff0c;比如LocalEntryNotFoundError: Connection error, and we cannot find the requested files in the disk cache. Please try again or make sure your Internet connection is on. 这是因为timm下载权重默认是从huggingfaceH…

【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能

前言 看到这个标题有人就要说了&#xff0c;D哥啊&#xff0c;MybatisPlus不是本来就有逻辑删除的配置吗&#xff0c;比如TableLogic注解&#xff0c;配置文件里也能添加如下配置设置逻辑删除。 mybatis-plus:mapper-locations: classpath*:mapper/*.xmlconfiguration:mapUnd…

品牌挑选控价服务商的标准参考

控价是一项需要投入时间精力的工作&#xff0c;品牌可以自主团队去做&#xff0c;但如果涉及数据量太大的时候&#xff0c;还需要开发系统&#xff0c;这样显然会增加非常多的成本&#xff0c;系统开发费用和运维费用都是一笔不小的开支&#xff0c;所以现在很多的品牌会选择找…

GIN框架:自定义结构体到出JSON格式

先自定义结构体的赋值以及到出 在 Go 语言中&#xff0c;json:"errorMsg" 是一个 struct tag&#xff0c;用于定义结构体字段在被序列化成 JSON 格式时的名称。如果你在定义结构体字段时添加了这个 tag&#xff0c;那么在将结构体实例序列化为 JSON 格式时&#xff0…

澳洲猫罐头到底怎么样呢?我自己亲自喂养过的优质猫罐头分享

猫罐头要符合三点&#xff1a;营养配方完整均衡、原料新鲜优质、生产工艺科学可靠。只有具备这些特点&#xff0c;才是品质上乘的猫罐头。 这三个要点缺一不可&#xff0c;配方不够均衡营养&#xff0c;便无法给猫提供充足的营养、会导致营养不良&#xff1b;原料不够新鲜、优质…