欢迎来到 星空Online - 织梦者,我的原创世界。

Java 实现 .NET 字符串HashCode算法

发布于:2/25/2022, 11:11:00 AM @孙博
技术分享 | Java,Hash

早前曾经分享过一篇《TypeScript 实现 .NET 字符串HashCode算法》,将 .NET Framework 中曾使用的字符串哈希算法翻译成了 Typescript 表达。

有朋友向我咨询是否存在 Java 版的,其实是有的,而且也在生产运行了很多年,只是 Java 比较容易翻译此前我就没发出来,现在再额外补充一篇吧。

与Typescript那篇一样,首先是 C# 源码。

阅读更多内容......

CentOS 7 安装 git 2.34.1

发布于:1/12/2022, 12:33:14 PM @孙博
技术分享 | CentOS,git

尽管 CentOS 7.x 的终期已定,但在那天真正来临之前,仍然是相当多公司(和现有项目)的主流选择。

CentOS 7.x 自带的 git 版本为 1.8.x,属于较旧的一个版本,偶尔安装一些程序依赖 git 时,都要求更高一些的版本。但如果尝试使用 yum install git 的话,安装的仍然会是旧版本。所以我们需要按照如下的方式手动安装。


阅读更多内容......

Spring Boot 遇到 RFC 7230 and RFC 3986 的问题

发布于:12/14/2021, 4:04:39 PM @孙博
技术分享 | Spring Boot,Tomcat,RFC 7230,RFC 3986

分享一个小案例。

这两天因为 log4j 的天坑导致别的事情都没做,光升级组件了。恰巧手上有个老项目顺便需要升级一下 spring-boot,从 https://mvnrepository.com/ 上查到今天最新的版本是 2.1.6 于是便直接升级了,然后问题发生了。

线上的服务忽然开始报 400 Bad Request 错误,查了下错误日志,看到了这个提示:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986。虽然26个字母我都认识,但他们连成的这句话让我还是不知道如何解决。百度一下发现是因为请求的字符串中包含了 |,尽管最佳的解决方式是在请求端做一次 encode,但这种 native 的线上项目是不可能在短时间内完成全量升级的。

阅读更多内容......