- 博客(297)
- 资源 (8)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式
代码中实现了电码本ECB模式和密文分组连接CBC模式,SM3.java和SM4.java为算法实现类,utils的都是根据实现类写的工具,可以根据需要调用杂凑算法SM3的杂凑功能获得杂凑值。SM4.java中sm4_crypt_ecb(SM4_Context ctx, byte[] input) ECB模式加解密方法,根据密钥判断加解密功能sm4_crypt_cbc(...
2018-05-19 17:34:00
49454
15
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SM4算法设计原理
SM4分组密码算法描述:SM4分组密码算法是一个迭代分组密码算法,由加解密算法和密钥扩展算法组成。SM4分组密码算法采用非平衡Feistel结构,分组长度为128b密钥长度为128b。加密算法与密钥扩展算法均采用非线性迭代结构。加密运算和解密运算的算法结构相同,解密运算的轮密钥的使用顺序与加密运算相反。密钥及密钥参量:SM4分组密码算法的加密密钥长度为128b,表示为MK=(MK0,M...
2018-05-10 10:28:44
11832
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SM3算法设计原理
SM3密码杂凑算法的描述SM3密码杂凑算法采用Merkle-Damgard结构,消息分组长度为512b,摘要长度256b。压缩函数状态256b,共64步操作步骤。SM3密码杂凑算法的初始值:SM3密码杂凑算法的初始值共256b,由8个32b串联构成,具体值如下:IV=7380166f 4914b2b9 1724422d7 da8a0600a96f30bc 163...
2018-05-10 10:27:20
16179
2
原创 黑客的秘密武器:John the Ripper密码破解全解析
John the Ripper 是一个开源的密码破解工具,广泛用于安全审计和渗透测试中对已哈希过的密码进行破解。它支持多种加密算法,包括但不限于DES、MD5、SHA系列等,并且可以针对Linux、Windows等多种操作系统中的密码哈希进行破解。在Kali Linux中,John the Ripper已经被预装,这使得安全研究人员能够方便地利用这一强大工具。
2024-08-07 21:38:58
301
原创 Kali Linux 开启 ssh
Kali Linux通常默认已经安装了OpenSSH服务器,但首先确认一下总是好的。:默认的SSH配置对于大多数情况来说已经足够安全和适用,但你可能想要根据需要调整一些设置。:如果你使用了防火墙(如ufw),确保SSH端口(默认是22)是开放的。查找与网络接口相关的IPv4地址(通常是eth0或wlan0,具体取决于你是通过有线还是无线连接网络)。:为了从另一台计算机连接到这台Kali机器,你需要知道它的IP地址。(表示已安装),则表明SSH服务器已经安装。:安装完成后,你需要启动SSH服务。
2024-08-06 23:03:48
406
原创 Go远程调试揭秘:如何在异地精准操控代码?
Go远程调试依赖于在目标机上运行的调试代理(如Delve)与开发者机器上的IDE或调试客户端之间的网络通信。这种模式允许开发者在不同的物理位置对运行中的Go应用进行断点设置、查看状态、单步调试等操作,大大提高了调试的灵活性和效率。然而,使用远程调试时,需要注意网络安全和调试环境的配置。
2024-03-26 17:24:23
626
原创 TypeScript新手指南:何时使用.ts,何时转向.tsx?
扩展名用于告诉TypeScript编译器文件中可能包含JSX元素,因此编译器需要特别处理这些元素。文件通常不包含JSX代码,JSX是一种JavaScript的语法扩展,允许你在JavaScript代码中写类似HTML的标记。:这是一个标准的TypeScript文件,它可以包含TypeScript代码,该代码最终会被编译成JavaScript。(JavaScript)文件,以便在浏览器或其他JavaScript环境中执行。总结一下,如果你的TypeScript代码中包含JSX,你应该使用。
2024-03-07 22:37:08
1853
原创 不再手画UML,这些工具帮你智能生成!
使用这些工具时,你可能需要将你的代码或项目作为输入,工具会分析代码结构,并生成相应的 UML 图表。有些工具提供了插件或扩展,可以集成到 IDE 中,如 IntelliJ IDEA 和 Eclipse,使得在开发环境中直接生成和更新 UML 图表变得更加方便。选择哪个工具取决于你的具体需求、预算(部分工具是商业软件)、以及你更倾向于哪种工作流程。生成 UML(统一建模语言)图表的工具有很多,其中一些可以直接从代码生成。
2024-03-05 20:06:38
3082
原创 Java I/O新境界:用Scatter/Gather玩转数据流!
Scatter/Gather” I/O 是 Java NIO 中的一个高级特性,它允许你以非阻塞的方式从一个通道(Channel)读取数据到多个缓冲区(Scattering Reads),或者将多个缓冲区的数据写入同一个通道(Gathering Writes)。这种机制能够高效地处理多个缓冲区的数据,使得I/O操作更加灵活。
2024-03-05 20:00:19
424
原创 探索技术高地:这些能力将让你在行业中独占鳌头!
选择学习哪些技能和技术取决于您的职业规划和兴趣。如果您计划进入一个新的领域,了解该领域的基础知识和最佳实践是一个很好的起点。随着技术的不断发展,持续学习和适应新的技术趋势对于保持竞争力至关重要。推荐技术点或能力取决于您的兴趣、职业目标以及所处的行业。
2024-03-05 18:01:37
394
原创 点亮隐私灯塔:Chrome为何要关闭第三方Cookie的大门?
Chrome禁用第三方Cookie的主要原因是提升用户的隐私保护。第三方Cookie常被用作跨网站追踪用户行为的工具,而这种跟踪通常发生在用户没有充分认识到其隐私可能被泄露的情况下。随着用户对隐私日益关注以及隐私法规(如GDPR和CCPA)的实施,Google和其他技术公司面临着提供更强隐私保护措施的压力。正因为Chrome占据了相当大的市场份额,它对第三方Cookie的禁用将会加速整个行业对隐私友好型广告技术的转变。企业和开发者需要及时适应这些变化,以便在不侵犯用户隐私的前提下继续提供相关服务和广告。
2024-03-05 15:46:37
479
原创 IntelliJ IDEA远程开发全攻略:多种方式让你的编码无界限
截至知识更新时间点,IntelliJ IDEA支持通过多种方式进行远程开发。这意味着你可以在本地IDEA环境中编写代码,而实际的代码运行和调试发生在远程服务器上。远程开发功能适用于不同的场景,包括但不限于:开发服务器、云环境、容器化环境等。
2024-03-04 10:17:52
1635
原创 内网穿透神器大盘点:让你的本地服务一键公网可达
选择适合的工具时,需要考虑穿透的稳定性、安全性、易用性以及是否支持所需的协议等因素。内网穿透是指在内网环境下,不具备独立公网IP的设备,通过某种技术手段,使得外网用户能够访问到内网的服务。: 一个高性能的内网穿透工具,支持多种协议,通过服务端与客户端配合使用,可以实现内网服务的穿透。: 远程控制工具,虽然主要用于远程桌面,但也可以通过它的VPN功能实现内网穿透。: 提供一个公共的端口映射服务,可以将内网服务映射到云端提供的公网端口。: 类似于TeamViewer的远程控制工具,也提供了内网穿透的能力。
2024-03-03 22:56:29
693
原创 函数式响应式编程(FRP):构筑灵活动态的应用程序
FRP(Functional Reactive Programming,函数式响应式编程)是一个编程范式,它结合了函数式编程和响应式编程的原则,用于处理时间变化的数据和响应性系统。FRP 让开发者能够以声明式地方式来构建响应用户输入、网络请求或其他事件的程序。
2024-03-03 22:38:43
405
原创 Kotlin 协程遇见 Flow:打造更优雅的数据流处理
Kotlin Flow 是 Kotlin 协程库中的一个组件,它提供了处理异步数据流的能力。Kotlin Flow 类似于 RxJava 中的 Observable,但它完全基于 Kotlin 协程设计,使得异步流的操作变得更加简单和直观。Flow 是冷流(cold stream),意味着它并不会在有收集器开始收集之前开始发射数据。这与 RxJava 中的热流(hot stream)相反,后者在没有观察者的情况下也会开始发射数据。
2024-03-03 22:36:02
803
原创 聊一聊脑机接口
尽管 BCI 技术取得了进步,但仍面临许多挑战,包括提高信号的分辨率和稳定性、减少系统的侵入性、提高系统的实用性和可靠性、处理和解释大量的神经数据等。此外,如何确保这项技术的广泛可及性和伦理使用,是未来需要解决的重要问题。随着技术的发展和伦理法规的完善,我们可以期待 BCI 将在未来的医疗、辅助技术和人机交互等多个领域中发挥更重要的作用。截至我所知的信息,脑机接口(Brain-Computer Interface, BCI)技术正在迅速发展,但仍处于相对早期阶段。
2024-03-03 17:34:36
409
原创 MyBatis-Plus:如何巧妙使用参数别名提升开发速度
“ew” 通常是 “Entity Wrapper”的缩写,它指的是 MyBatis-Plus 中用于构造查询条件的 Wrapper 对象。- “cm” 是 “Column Map”的缩写,它通常用于传递一个 Map 类型的参数,其中包含列名和对应的值,用于构建类似于 SQL 中的 WHERE 条件语句。- “et” 代表 “Entity”,在一些方法中用于传递实体类对象,它用于表示要操作的数据记录的实体对象。是一个常量,它的值通常是“et”,在这里作为参数别名,同样指的是实体对象。
2024-02-29 17:40:16
1027
原创 玩转事务传播:Spring @Transactional神秘面纱揭开
如果当前存在一个事务,则在嵌套的事务内执行,嵌套的事务独立于当前事务提交或回滚(依赖于底层数据库的支持)。这种声明式的事务管理简化了代码,提高了可读性,减少了编程错误,因为事务管理的责任转移到了框架上,开发人员可以关注于业务逻辑本身。如果当前没有事务,则创建一个新的事务。如果当前没有事务,则以非事务的方式执行。: 总是以非事务的方式执行,如果当前存在事务,则将当前事务挂起。: 总是创建一个新的事务,如果当前存在事务,则将当前事务挂起。: 总是以非事务的方式执行,如果当前存在事务,则抛出异常。
2024-02-27 15:11:13
366
原创 SOP、SLA、SOA傻傻分不清?
SOA 是 “Service-Oriented Architecture” 的缩写,中文意思是“面向服务的架构”。这些服务是独立的,它们可以跨不同的平台、语言和技术进行调用和组合,以构建复杂的应用程序。SLA 是 “Service Level Agreement” 的缩写,中文意思是“服务水平协议”。它是服务提供商和客户之间的正式协议,定义了双方对于服务质量、范围、职责和响应时间等方面的预期和承诺。它是组织内部规定的一套标准化的工作流程或操作指南,目的是确保工作或任务以统一、高效、安全的方式完成。
2024-02-26 17:35:22
1312
原创 “形而上“和“形而下“分不清?
它探讨的是存在的本质、宇宙的根本原理、事物的本体和事物之间的基本关系等。形而上学关注的是抽象的、不可见的、非物质的本质,如思想、理念、概念、价值、意义和存在本身。形而下学强调的是可见的、物质的、实证的事物,即自然现象和物质存在。继续《周易》中的例子,器即是根据道的原则制作的具体物品,是理念和原则在现实世界中的应用和体现。在不同的文化和哲学体系中,这两个概念有着不同的内涵和用途,但它们通常都被用来区分世界的不同层面:一是不可见的、抽象的、思想层面(形而上);另一是可见的、具体的、物质层面(形而下)。
2024-02-26 14:21:55
458
原创 画图神器之争:PlantUML和Mermaid那个更适合你?
选择PlantUML还是Mermaid取决于个人偏好、项目需求以及你所使用的工具和平台。对于需要详细和复杂UML图表的场景,PlantUML可能是更好的选择。而如果你希望有一个轻量且易于集成到Web环境中的工具,Mermaid可能更符合需求。PlantUML和Mermaid都是流行的工具,用于通过文本描述快速创建图表,特别是UML图。
2024-02-23 16:27:10
2570
原创 资金结算需求中经常听到“轧差”,这个词是方言?
轧差一词有时也用于描述类似的净额结算概念,即在多个交易之间进行净额计算,以简化和优化资金流动。"轧差"是一个金融术语,特别是在清算和结算过程中经常使用。它指的是在对金融交易(如股票、债券、外汇、期货等)进行清算时,只结算交易双方在数量或金额上的差额,而不是整个交易额。如果一个投资者在同一交易日内对同一种证券进行了多次买卖操作,轧差就意味着在日终清算时只处理净买入或净卖出的数量,而不是每一笔单独交易的数量。在银行或支付系统中,轧差涉及到在特定时间点对交易双方的应收和应付金额进行抵消,只处理余额。
2024-02-01 09:58:47
1450
原创 电商中的P4P是什么?
例如,在搜索引擎结果页面上的付费广告(如Google Ads),广告商不是为展示广告支付费用,而是根据用户对广告的点击量(即每次点击付费,Pay-Per-Click,PPC)来支付。这种模式下,广告商的费用直接与广告的绩效(用户的实际点击)相关联。在工作场所的绩效管理中,P4P是指根据员工的工作表现来分配薪酬、奖金或其他奖励的做法。P4P是“Pay for Performance”的缩写,这是一种绩效驱动的支付模式,广泛用于多个领域,包括医疗、广告、营销和工作场所的绩效管理。
2024-01-26 14:18:56
1348
原创 电商中的3PL和4PL是什么?
客户企业利用3PL提供商的专业服务来管理其供应链中的一部分或全部物流操作,而不需要自己投资于物流基础设施如车队和仓库。4PL提供商提供比3PL更高级别的服务,它们作为客户企业供应链的整合者和优化者。4PL服务提供商通常不直接拥有物流资源,而是通过管理和整合多个3PL服务提供商和其他物流服务资源来为客户提供全面的供应链解决方案。3PL(Third-Party Logistics,第三方物流)和4PL(Fourth-Party Logistics,第四方物流)是供应链管理领域的两种物流外包服务模式。
2024-01-26 14:17:58
1359
转载 Alibaba QLExpress 基本语法
/支持 +,-,*,/,,=,==,!=,【等同于!=】,%,mod【取模等同于%】,++,--,//in【类似sql】,like【sql语法】,&&,||,!,等操作符//支持for,break、continue、if then else 等标准的程序控制逻辑n = 10;sum = 0;for(i = 0;i < n;//逻辑三元操作a = 1;b = 2;a : b;a = 10;/**
2024-01-26 11:28:23
398
原创 “Fade away“
在音乐制作中,"fade out"是一种常见的技术,指的是音乐或声音逐渐变弱直至完全消失。虽然"fade out"是更常用的术语,但"fade away"在非正式的语境下也可用于描述类似的意思。:在字面上,"fade away"可以用来描述一种缓慢减少直至完全消失的过程。在上述任何情况下,"fade away"通常带有一种渐进、柔和、不显眼的消逝感,与突然消失或戛然而止等情况相对。:在文学作品中,"fade away"可能被用来象征性地表达生命的短暂、梦想的破灭,或是某种状态的终结。
2024-01-25 16:50:51
424
原创 发现 Cargo 的魅力:优雅地构建、发布和管理 Rust 项目
Cargo 是 Rust 的官方包管理器和构建工具。它被用于构建、测试和发布 Rust 项目,同时也管理项目的依赖关系。总的来说,Cargo 简化了 Rust 项目的构建和依赖管理过程,使得开发者可以更轻松地开发、测试和发布 Rust 项目。它还提供了一些其他功能,例如代码检查、文档生成和构建脚本的支持,以进一步提高开发效率。
2023-10-24 09:22:12
249
原创 Ktor vs Spring Boot:哪个框架能帮助你构建更高性能的 Web 应用?
Ktor 和 Spring Boot 是两个在 Kotlin Web 开发中常用的框架,它们有一些共同点,也有一些区别。
2023-10-24 09:15:20
1865
原创 轻松管理项目依赖:深入了解SBT的依赖管理功能
SBT(Simple Build Tool)是用于构建Scala项目的构建工具。它是Scala生态系统中最常用的构建工具之一,被广泛用于管理和构建Scala项目的编译、依赖管理和测试等方面。
2023-10-09 11:41:21
680
原创 数据分片的艺术:Sharding Key为多节点数据库带来的巨大优势
通过选择适当的Sharding Key,可以将数据均匀地分布到各个分片节点上,并且在查询时可以使用Sharding Key来定位数据所在的节点,从而避免全表扫描和跨节点查询的开销。数据库分片是将数据分散存储在多个数据库节点上的一种技术。总而言之,Sharding Key的由来是为了解决数据库分片中的数据分布和查询问题,通过合理选择Sharding Key,可以提高系统的可扩展性、性能和负载均衡。Sharding Key(分片键)是为了解决在数据库分片(sharding)过程中的数据分布和查询问题。
2023-10-07 19:41:23
552
原创 TCP串流场景剖析
在TCP(传输控制协议)中,串流场景指的是数据通过TCP连接以流(stream)的方式传输。TCP是一种可靠的、面向连接的传输协议,它将数据切分为多个报文段,通过网络传输,并在接收端进行重组,以确保数据的可靠性和完整性。在TCP串流场景中,数据被分割成不同大小的报文段,并通过TCP套接字进行传输。TCP提供了流控制和拥塞控制机制,以确保发送方和接收方之间的数据传输速度适应网络的状况。总的来说,TCP串流场景通过将数据分割成报文段,经过可靠的传输和重组机制,保证了数据的可靠性和完整性。
2023-10-01 09:43:43
503
原创 探索Linux内核参数的妙用:深入理解配置,打造高效运行环境
这只是一小部分常见的Linux内核参数,实际上Linux内核有很多参数可供配置,每个参数都有不同的作用和取值范围。了解和理解这些参数可以帮助我们更好地调优和优化Linux系统的性能和功能。Linux内核参数是指可以在Linux操作系统中通过修改内核参数来调整系统行为的设置。这些参数控制了操作系统的各种功能和特性,包括内存管理、网络协议、文件系统、进程调度等。在Linux中,内核参数可以通过多种方式进行修改和配置,包括在启动时通过传递命令行参数、通过sysctl命令动态修改、通过修改配置文件等。
2023-09-22 13:49:37
313
原创 打破JSON的束缚:探寻Spring @JsonComponent的灵活性和扩展性
总结起来,使用Spring的Jackson ObjectMapper进行对象的序列化和反序列化时,会自动识别并使用通过@JsonComponent注解标记的自定义组件,根据对象的类型来决定使用哪个自定义组件进行处理。在Spring框架中,@JsonComponent注解用于自定义JSON序列化和反序列化的组件。接下来,当我们使用Spring的Jackson ObjectMapper进行对象的序列化和反序列化时,会自动识别并使用CustomJsonComponent中定义的自定义序列化和反序列化逻辑。
2023-09-20 16:18:26
460
原创 “传统技术”快速搭建AI产品的利器——LLM技术
LLM的实现涉及到多个领域的交叉,包括机器学习、计算机视觉、传感器融合和路径规划等。LLM(Learning, Localization, and Mapping)技术的原理是将学习、定位和建图结合起来,实现机器人对环境的感知、定位和地图构建。随着技术的不断发展和创新,LLM技术将在更多领域中发挥作用,实现更智能、高效和安全的机器人和自动化系统。LLM(Learning, Localization, and Mapping)技术在许多领域都有广泛的应用,涉及到机器人、无人驾驶、智能家居等多个领域。
2023-09-19 11:30:01
294
原创 关键节点与邻居搜索:K-Core算法对比K-Hop算法的效能较量
核心节点是指在网络中具有重要影响力的节点,它们连接着大量其他节点,是网络中的重要信息传播和控制中心。K-Core算法通过逐步删除网络中度小于K的节点,直到网络中不存在度小于K的节点为止,然后得到的网络即为K-Core网络。K-Hop算法是一种网络分析算法,用于寻找网络中某个节点的K跳邻居。K跳邻居是指离该节点距离为K的节点集合,即从该节点出发,经过K条边可以到达的节点。K-Core算法和K-Hop算法是两种不同的网络分析算法,它们分别用于发现网络中的核心节点和寻找节点的K跳邻居。
2023-09-18 20:49:45
460
原创 Transformer之傲慢与偏见:主流大语言模型的技术细节揭秘
目前,主流的大语言模型包括GPT(Generative Pre-trained Transformer)系列、BERT(Bidirectional Encoder Representations from Transformers)、XLNet(eXtreme-Long Transformer)等。
2023-09-15 10:21:20
248
autorun_package_multi.py
2019-11-21
脚本批量生成工具,从Excel生成脚本
2018-04-28
java实现国密算法SM2,SM3,SM4算法
2018-04-26
基于SM3算法和SM4算法的在线加解密系统(针对任何文件的加解密)
2018-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人