自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据安全之对称加密(九)- 数据填充实现

这时,“PKCS5Padding”就发挥了作用,它是一种常用的数据填充模式,用于处理这种长度上的不匹配问题。具体来说,如果一个数据块缺少若干字节才能达到所需的块大小,PKCS5Padding会添加相应数量的填充字节,每个填充字节的值等于缺少的字节数。如果明文数据的长度恰好是128位的整数倍,即不需要任何填充来达到块大小,PKCS5Padding会添加一个完整的128位的新块作为填充。待加密的明文首先被分割成若干固定大小的块,每个块大小通常是128位。接着,这些块逐一被加密,转换成对应的密文块。

2024-01-25 22:51:03 390

原创 数据安全之对称加密(八)- AES 用法

在AES加密中,密钥的长度是其安全性的关键因素之一,它可以是128位、192位或256位。通常情况下,密钥越长,其安全性越高,因为长密钥意味着潜在的密钥组合数量更多,从而更难以被破解。例如,对于极其敏感的数据,使用256位密钥可以提供最高级别的安全保障。特别是在使用CBC(Cipher Block Chaining)这样的分组加密模式时,IV起着关键的作用。它确保即使相同的数据多次加密,每次生成的密文也是不同的。我们先来看一个简单的 AES 加解密的例子(注意这段代码只用于学习,不能用于线上系统)。

2024-01-24 22:01:59 468

原创 数据安全之对称加密(七)- 了解对称加密

加密是一种安全技术,用于将信息转换成只有授权人才能解读的形式。其核心目的是保护数据免受未经授权的访问和阅读。在加密过程中,原始信息(称为“明文”)通过一个加密算法和一个或多个加密密钥被转换成“密文”。密文是一种不易理解的格式,只有通过对应的解密密钥和算法才能将其转换回原始的可读形式。

2024-01-23 21:40:26 375 1

原创 数据安全之散列函数(六)- SHA256

SHA-256(Secure Hash Algorithm 256-bit)是SHA-2(Secure Hash Algorithm 2)家族中的一种加密哈希函数,由美国国家安全局(NSA)设计,并作为联邦信息处理标准(FIPS PUB 180-2)发布。SHA-256旨在替代旧的SHA-1算法,提供更高的安全性。它广泛用于多种安全应用和协议中,包括TLS和SSL、PGP、SSH、IPsec以及比特币和其他加密货币的区块链技术。

2024-01-22 21:12:43 622

原创 数据安全之散列函数(五)- MD5 JDK 源码解析

MD5 算法在 JDK 中是如何实现的

2024-01-21 15:00:37 2428 1

原创 数据安全之散列函数(四)- MD5 算法原理详解

在我们之前的文章中,我们探讨了MD4算法的细节。虽然在当前的技术环境下,MD4算法已经不被认为是安全的,但它仍然是现代大多数散列算法的基石。现在广泛使用的多种散列算法都是基于MD4的原理进行改进和发展的。在本文中,我们将深入探讨MD4与其后继者MD5之间的关键差异,并详细介绍MD5算法。通过比较这两种算法,我们旨在揭示MD5如何在保持MD4核心理念的同时,增强了安全性和效率。由于本文与上一篇密切相关,如果你还没阅读过,建议您先进行阅读。

2024-01-20 12:03:38 1800

原创 数据安全之散列函数(三)- MD4 算法原理详解

虽然 MD4 算法已经不再安全,但是 MD4 算法是大部分 hash 算法的基础,MD5 也是在 MD4 算法的基础上做了一些优化而来的。本文将深入解析 MD4 算法原理。

2024-01-19 14:45:01 1512 1

原创 数据安全之散列函数(二)- 数据分组与数据填充

在众多数据加密技术中,MD5算法以其独特的特性和广泛的应用场景而受到了极大的关注。本文将从MD5算法的基本原理入手,详细解析其背后的技术原理和实现过程。我们将通过实例代码的形式,逐步展现MD5算法的运作机制,力求使内容丰富、语句流畅、逻辑清晰,并充分激发读者对于数据加密技术的兴趣。通过本文的阐述,旨在让读者对MD5算法有一个全面而深入的了解,更好地在实际应用中运用这一关键的散列算法。

2024-01-18 17:19:04 440 1

原创 数据安全之散列函数(一)-了解散列函数

散列算法(Hash Algorithm)是一种从任意长度的数据串(消息)中创建小的固定长度散列值(或散列码)的过程。散列值通常用作数据的简短表示,以便于在存储和传输过程中快速比较大量数据。散列算法在计算机科学中应用广泛,尤其是在数据安全和加密领域。

2024-01-17 11:43:58 1008

原创 代码版本管理和提交规范(四)实践方案

审查方式采用组内循环审查,每个提交都必须经过至少一人审查。按照固定顺序进行审查,最后一组的代码由第一组进行审查。对于简单的需求,可以发起一个只有方案说明的 Merge request 进行方案审查,审查完成之后删除该次提交不进行 Merge。审查内容按照文章末尾前面文章中的 “如何做代码审查” 要求。每次审查都必须填写审查记录(如下图位置),最终审查完成填写“通过”。审查方式为版本开发完成后,由业务线负责人进行审查或者发起线下多人审查。填写代码审查的相关内容,并发起审查。审查完成后合并到版本分支。

2024-01-16 10:29:48 448 1

原创 代码版本管理和提交规范(三)代码审查

Facebook 使用的是 Phabricator 这个工具,工具辅助的线下异步审查,代码作者通过工具将代码发送给审查者,审查者再通过工具把反馈传递给作者。关于审查的讨论都以留言的方式在Gitlab中进行,有必要也可以当面进行交流,但是交流的最终结果需要在Gitlab中进行记录。对重要功能设计需要发起设计审核,设计审核可以是一个不包含任何代码变更的提交,在提交说明内写上功能和设计文档地址。第四,如果审查通不过就打回重做,开发者修改后重新提交审查,直到审查通过后代码入库。

2024-01-15 09:47:42 1059

原创 代码版本管理和提交规范(二)代码提交

代码提交的原子性,是指一个提交包含一个不可分割的特性、修复或者优化,同时这个提交要尽可能小。在Facebook,代码提交的原子性是代码审查非常重要的指标,如果提交的原子性不好,常常会被直接打回。好的代码提交,应该具有原子性、清晰可读等特点,有助于提升代码可读性、问题排查和代码审核效率。可以从提高代码提交原子性、提高代码提交说明质量、提升Git使用技能三方面提升代码提交质量。测试情况,描述的是你对这个提交做了什么样的测试验证,具体包括正常情况的输出、错误情况的输出,以及性能、安全等方面的专项测试结果。

2024-01-14 10:07:47 568

原创 代码版本管理和提交规范(一)分支管理

目前分支管理方式符合当前小团队的情况,可以继续保持当前的流程。主要存在的问题是,在上线前做 codereview,重点审查的目标是发布是否有风险。对设计、规范等方面关注较少。因此更多的需要在代码提交和审查阶段进行改进。

2024-01-14 09:06:38 1809

java面试笔试题集合

java面试笔试题集合4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别

2008-09-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除