分享一下Java下使用SHA256withRSA签名的代码,例如微信支付APIv3中的签名,就是使用的SHA256 with RSA签名,并对结果进行base64的编码。 这里签名使用到的密钥文件,是使用了Spring的特性,通过@Value(value = "${my.wx.mchApiClientKey}")加载进来的,可以根据使用实际需求修改。 通过generateSignature函数,对要求的参数(数组)进行签名。 WXPayUtil.java 如下,在SpringBoot下我加了@Component注解…

2022-02-23 0条评论 1952点热度 0人点赞 admin 阅读全文

生成验证码发送的等场景下会用到,生成多少位(由参数传入)随机数字的字符串,代码如下: /** * 生成随机数字字符串 * @param length 生成数字字符串的长度 */ public static String generateRandomDigitalString(int length) { String str = "0123456789"; Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i …

2022-02-22 0条评论 460点热度 0人点赞 admin 阅读全文

日历中,我们知道每个月的天数是不固定的,有时候是30天,有时候是31天;另外2个月更加特殊,根据是否是闰年,可能是28天或者29天;同理,某一年的总天数到低是今天,也要稍微判断一下的;所以如果自己写代码来判断,会比较麻烦,不过Java的Calendar类,有现成的函数可以判断,那就是:Calendar.getActualMaximum,来看下示例: Calendar calendar = Calendar.getInstance(); calendar.setTime(new SimpleDateFormat("y…

2022-02-21 0条评论 447点热度 0人点赞 admin 阅读全文

工具方法:获取给定多少位的随机字符,使用Random类的nextInt方法,candidate中的候选字符,可以根据实际需要进行调整。代码如下: /** * 生成随机字符串 * @param length 生成随机字符的长度 */ public static String generateRandomString(int length) { // 候选字符,现在是大小写字母和数字,可以根据实际情况调整 String candidate = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJK…

2022-02-20 0条评论 445点热度 0人点赞 admin 阅读全文

SpringBoot中配置了MyBatis,在开发调试的时候,需要看到当前运行的代码调用的SQL,可以这样做: application.yml中增加mybatis.configuration.log-impl 值为:org.apache.ibatis.logging.stdout.StdOutImpl # MyBatis mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 这样就能在控制台打印出当前的SQL了。

2022-02-19 0条评论 1159点热度 0人点赞 admin 阅读全文

如果你的IDEA中的项目很多,想要找到最近的项目,最好能有关键词搜索功能,在IDEA打开的欢迎页面有一个最近项目的搜索功能,不过大部分时候,是在当前打开了一个项目的时候,要打开另一个最近的项目,这个时候,一般是选择菜单File(文件)-Open Recent(打开最近),这个时候,会发现是没有搜索功能的,你之前的最近项目列表一长串都在,只能一个一个的翻找。 如图,列表很长,整个屏幕都装不下,没有搜索功能,找一个项目,非常困难 我们可以给Open Recent(打开最近) ,设置一个快捷键,然后通过快捷键唤出来的最近…

2022-02-18 0条评论 1350点热度 0人点赞 admin 阅读全文

写CSS的是否,遇到一个需求,需要根据标签的属性(例如属性是否是某个值,是否包含某个属性,是否不包含某个属性)选择出来增加css内容。 input:not([type]), input[type='text'], input[type='password'] { /* style here */ } input[type] { /* 根据input里的是否包含type来选择 */ } input:not([type]) { /* 根据input里的属性如果不包含type来选择 */ } input:not([typ…

2022-02-17 0条评论 585点热度 0人点赞 admin 阅读全文

平时开发时候有一些静态的工具方法,调用的时候比较方便,但是有时候,一些工具方法需要传入一些配置文件里面的参数(如果是用springboot那就调用application.yml里的参数) 我们可以这样改造 工具方法加@Component注解; 需要引入的配置参数,用@Value注解引入; 一些初始化的配置,使用@PostConstruct注解进行初始化; 以阿里云的短信发送为例,示例代码如下(我把初始化com.aliyun.dysmsapi20170525.Client作为static静态变量,放在PostCons…

2022-02-16 0条评论 603点热度 0人点赞 admin 阅读全文

SrpingBoot的项目,最近发现一个问题,部署到Linux服务器后,运行了一段时间后,上传文件的时候,出现这个错误: org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.123456/work/Tomcat…

2022-02-15 0条评论 669点热度 0人点赞 admin 阅读全文

之前的文章介绍了在CentOS上使用certbot配合cloudflare获取通配符证书的文章,详见: https://blog.terrynow.com/2021/10/04/centos7-or-8-certbot-cloudflare-letsencrypt-wildcard-ssl-cert-and-auto-renew/ 如果你的DNS是在aliyun上的,可以看如下: 首先检查你的系统环境是否安装了python3 [root@localhost ~]# python3 Python 3.6.8 (def…

2022-02-14 0条评论 1075点热度 0人点赞 admin 阅读全文
1373839404183