今天项目中需要用到一个JSON的依赖包(json-lib) 虽然根据https://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4查到pom应该这样导入: <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> <dependency> <groupId>net.sf.json-lib</groupId> <artif…
今天项目中需要用到一个JSON的依赖包(json-lib) 虽然根据https://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4查到pom应该这样导入: <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> <dependency> <groupId>net.sf.json-lib</groupId> <artif…
最近一个项目中Java中用OKHttp/HttpsURLConnection请求一个https的API,出现如下报错: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 用Postman或者浏览器模拟请求,却是正常的,也不是网上查到的所谓的证书问题。 因为实在检查不出来什么原…
有时候,我们需要用Java开发一个小的程序,或者只需要实现简单的http监听的server,此时并不想引入太多依赖(比如Spring或者要使用Tomcat等),此时可以使用Java自带的HttpServer来实现简单的web服务器,实现一些基本功能还是没有问题的。 下面分享下代码片段实现HttpServer,代码实现了以下几个功能和要点(详见代码注释): 实现web server(GET方法): http://127.0.0.1:8182/hello 如果GET携带参数 http://127.0.0.1:8182/…
开发的时候,例如安卓开发,遇到需要将正方形图片转换成圆形显示(如用户头像显示等),这里分享下我使用的Bitmap转换成圆形的工具类,输入Bitmap,输出圆形Bitmap。 直上干货工具方法: /** * 转换图片成圆形 * * @param bitmap * 传入Bitmap对象 * @return */ public static Bitmap toRoundBitmap(Bitmap bitmap) { if (bitmap == null) return null; int width = bitmap.g…
平时写程序时候,经常需要计算哈希值(MessageDigest摘要),如MD5、SHA1、SHA256等等,不妨做一个工具类,要用到的时候,一个方法调用就可以了,方便省事,下面是我使用的工具类,原生Java,无依赖。 Javascript版本实现哈希算法,请查看:https://blog.terrynow.com/2021/05/05/javascript-html-hash-tool-md5-sha1-sha256/ 要用的时候,直接HashUtil.sha1("123456");HashUtil.md5("12…
如题,一个工具类,直接MD5.compute("123456"); 即可计算一个字符串的MD5。 如需要其他Hash算法,如SHA1 SHA-256等,请查看https://blog.terrynow.com/2021/04/29/java-hash-tool-md5-sha1-sha256/ public class MD5 { public static String compute(String source) { String result = null; try { byte[] valueByte = …
开发是否遇到需要比较字符串是否符合通配符的规则的需求,例如,判断字符串hello.world 是否符合hello.* (*代表若干个字符串)或者是否符合hello.?????(多少个问号就代表多少个字符) 我们利用正则表达式可以很容易的写出,为了便于复用,将类似需求整理成工具方法,方便调用,代码如下(示例写在main方法里了): import java.util.Arrays; import java.util.regex.Pattern; /** * @author Terry E-mail: yaoxinghu…
今天遇到一个问题,使用Spring的Controller中实现上传文件处理的时候,报错: Controller中接收文件的代码如下: @RequestMapping(method = RequestMethod.POST, value = "/file/upload") public @ResponseBody String uploadManageRule(@RequestParam(value = "file") MultipartFile file) { // TODO 把MultipartFile file…
本篇简单介绍下非对称加密以及公钥和私钥加密不同的使用场景,以及如何用Java代码实现AES加解密的工具类和例子 需要两个密钥(公钥和私钥)来进行加密和解密,公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥) ,公钥加密的信息只有私钥才能解开,私钥加密的信息只有公钥才能解开。这个公钥和私钥必须是一对的,如果用公钥对数据进行加密,那么只有使用对应的私钥才能解密,所以只要私钥不泄露,那么我 对于签名:私钥加密,公钥解密。好比你的签名只有你自已签的才是真的,别人签的都是假的。 们的数据…
AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB 我们项目里用的多的是较多的是,下面介绍下如何使用Java来实现加解密。 关于如何使用Javascript实现(加解密结果和Java版本互通),请查看这篇:[Javascript]实现对称加解密AES/CBC/PKCS5PADDING Python版本的实现(…