
加密
文章平均质量分 62
程序员食堂
一个写了10多年bug的程序员。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【加密】SM4学习和使用
SM4 是中国国家密码管理局(GM/T)于 2012 年发布的商用密码算法,属于。,与 SM2(非对称加密)、SM3(哈希算法)共同构成中国自主密码体系。:替代国际算法(如 AES),满足金融、政务等领域的高安全性需求。将 128 位初始密钥扩展为 32 个 32 位的轮密钥(示例:敏感信息(如身份证号)存储时使用 SM4 加密。设备间的安全通信协议(如 TLS 中集成 SM4)。满足中国密码法规要求的系统(如政务云、电子发票)。数据库字段、文件、通信内容的加密保护。:4 个并行的 8 位 S 盒替换。原创 2025-03-10 13:53:08 · 4147 阅读 · 1 评论 -
【加密】SM3学习和使用
抗第二原像攻击(Second Preimage Resistance):已知哈希值,难以反推原始数据。,与 SM2(椭圆曲线公钥算法)、SM4(分组密码算法)共同构成中国自主知识产权的密码体系。:对每个 512 位分组执行 64 轮非线性操作(包括位运算、模加等)。替代国际通用算法(如 SHA-256),提升密码技术自主可控性。与 SM2 结合,用于生成和验证签名(如电子合同、数字证书)。:256 位(32 字节),与 SHA-256 相同。:输入消息按 512 位(64 字节)分组处理。原创 2025-03-10 13:48:59 · 1582 阅读 · 0 评论 -
org.bouncycastle.util.encoders.DecoderException: exception decoding Hex string: invalid characters e
确保您的十六进制字符串只包含有效的十六进制字符。有效的十六进制字符包括数字 0-9 和字母 A-F(不区分大小写)。如果字符串中包含其他字符,就会出现该异常。:如果以上步骤都没有解决问题,那么可能是输入数据本身存在问题。请确保您提供给解码函数的数据是正确格式的十六进制字符串,并且没有其他错误。:如果在字符串中存在无效字符,您可以尝试将其删除或替换为有效的十六进制字符。只保留有效的字符,然后再次尝试解码。:确保您使用正确的方法对十六进制字符串进行解码。检查您当前使用的解码方法是否正确,并根据需要进行更正。原创 2024-12-06 17:24:19 · 896 阅读 · 0 评论 -
非对称加密SM2算法java实现
基于SM2算法的Java示例代码,展示了如何进行公钥加密、私钥解密、私钥签名和公钥验签。原创 2024-07-12 09:54:06 · 1670 阅读 · 0 评论 -
非对称加密RSA算法java实现
基于RSA算法的Java示例代码,展示了如何进行公钥加密、私钥解密、私钥签名和公钥验签。原创 2024-07-11 16:16:12 · 1071 阅读 · 0 评论 -
在HTTP协议中常见的Token类型
用于HTTP基本认证,将用户名和密码进行Base64编码后放在Authorization头中,格式为。:消息认证码(Message Authentication Code),用于验证消息的完整性和来源。这些Token类型各有不同的用途和安全特性,选择合适的Token类型取决于具体的应用场景和安全需求。:最常见的类型,用于OAuth 2.0认证,通过Authorization头传递,格式为。:用于HTTP摘要认证,通过一系列的加密和哈希算法来验证客户端的身份。原创 2024-07-11 15:20:28 · 863 阅读 · 0 评论 -
非对称加密公私钥使用
非对称加密算法使用一对密钥,包括一个公钥和一个私钥,它们是数学上相关联的,但公钥可以公开分享,而私钥必须保密。原创 2024-07-06 17:15:20 · 933 阅读 · 0 评论 -
java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding
这意味着,无论Java的哪个版本,如果需要PKCS7Padding功能,都需要依赖Bouncy Castle库或类似的第三方实现。:如果默认的Java加密提供者不支持你需要的配置,你可以考虑使用第三方加密库,如Bouncy Castle。Bouncy Castle是一个广泛使用的加密库,它提供了广泛的加密算法和模式支持。总的来说,PKCS7Padding 提供了更大的灵活性和兼容性,但可能需要更复杂的实现。:确保你使用的是Java 8的最新更新版本,因为较新的更新可能包含更多的加密提供者。原创 2024-06-07 05:00:00 · 1633 阅读 · 0 评论 -
非对称加密学习
非对称加密,又称为公钥加密,是一种在网络中广泛使用的加密技术。它使用一对密钥来实现数据的加密和解密,这对密钥包括一个公钥和一个私钥。公钥是公开的,任何人都可以用来加密信息;私钥则是保密的,只有密钥的拥有者才能用它来解密信息。非对称加密的安全性基于这样一个事实:在计算上,用公钥加密数据很容易,但用私钥解密数据却非常困难,反之亦然。这种不对称性使得非对称加密成为保护数据传输安全的有效手段。原创 2024-04-11 11:48:19 · 1390 阅读 · 0 评论 -
对称加密学习
对称加密是一种加密技术,它使用相同的密钥进行数据的加密和解密操作。这种加密方法因其高效性和速度优势,在数据加密领域得到了广泛的应用。原创 2024-04-10 17:56:54 · 794 阅读 · 0 评论 -
AES加密学习
AES(高级加密标准)是一种对称密钥加密算法,用于加密和解密数据。它被广泛应用于各种安全领域,包括但不限于网络通信、数据存储和软件保护。AES是由比利时密码学家Joan Daemen和Vincent Rijmen设计的Rijndael算法演变而来的。美国国家标准与技术研究院(NIST)在2001年将其选为新的数据加密标准,以取代旧的DES(数据加密标准)。AES是一种对称密钥算法,这意味着加密和解密使用相同的密钥。它通过一系列复杂的数学变换来加密数据,这些变换包括字节替换、行移位、列混合和轮密钥加。原创 2024-03-06 16:14:38 · 1700 阅读 · 0 评论 -
加密算法学习
公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。具体一些就是,发送方通过使用相应的加密算法和秘钥,对将要发送的信息进行加密;对于接收方而言,使用解密算法和相同的秘钥解锁信息,从而有能力阅读信息。对称加密,顾名思义,加密方与解密方使用同一钥匙。原创 2023-12-22 15:25:17 · 660 阅读 · 0 评论 -
JAVA 加密 EncryptUtils
import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.lang3.StringUtils;import java.nio.charset.Charset;public class EncryptUtils { public static final String[] ENCRYPT_LIST = {"原创 2016-12-01 17:33:00 · 4297 阅读 · 2 评论 -
转换加密工具类-MD5
/** * 转换加密工具类 */public class MD5 { private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; /** * 转换字节数组为16原创 2015-12-04 11:59:07 · 733 阅读 · 1 评论 -
常用加密算法工具类
import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import sun.misc.BASE64Decoder; import sun原创 2015-12-04 11:55:21 · 957 阅读 · 0 评论