今天遇到一个问题,使用Spring的Controller中实现上传文件处理的时候,报错: Controller中接收文件的代码如下: @RequestMapping(method = RequestMethod.POST, value = "/file/upload") public @ResponseBody String uploadManageRule(@RequestParam(value = "file") MultipartFile file) { // TODO 把MultipartFile file…

2021-04-17 0条评论 5点热度 0人点赞 admin 阅读全文

本篇简单介绍下非对称加密以及公钥和私钥加密不同的使用场景,以及如何用Java代码实现AES加解密的工具类和例子 需要两个密钥(公钥和私钥)来进行加密和解密,公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥) ,公钥加密的信息只有私钥才能解开,私钥加密的信息只有公钥才能解开。这个公钥和私钥必须是一对的,如果用公钥对数据进行加密,那么只有使用对应的私钥才能解密,所以只要私钥不泄露,那么我 对于签名:私钥加密,公钥解密。好比你的签名只有你自已签的才是真的,别人签的都是假的。 们的数据…

2021-04-14 0条评论 12点热度 0人点赞 admin 阅读全文

AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB 我们项目里用的多的是较多的是,下面介绍下如何使用Java来实现加解密。 关于如何使用Javascript实现(加解密结果和Java版本互通),请查看这篇:[Javascript]实现对称加解密AES/CBC/PKCS5PADDING Python版本的实现(…

2021-04-14 0条评论 27点热度 0人点赞 admin 阅读全文

很多时候,在处理字符串的时候,需要检查给定的字符串是否是数字、或者整数等。 下面整理下判断数字或者整数的方式 Java的最普通的判断数字、小数的方法,就是用 去解析,如果能解析出Integer或者Double,不抛出异常,那么说明这个string是数字或者小数,这种方式虽然有点不优雅,但是有效! public static void main(String[] args) { System.out.println(isNumber("012345")); System.out.println(isDecimal("…

2021-04-09 0条评论 62点热度 0人点赞 admin 阅读全文

使用SpringSecurity默认的登录是没有验证码的,但是如果没有验证码,被暴力破解还是挺危险的,所以很有必要为SpringSecurity加一层验证码保护。 可以通过给SpringSecurity加一个前置过滤器,来校验验证码来实现。 配置文件如下SecurityConfiguration.java: 主要看方法里的: 其他的按需要复制 @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdap…

2021-04-07 0条评论 28点热度 0人点赞 admin 阅读全文

遇到一个拆迁补偿选房问题,用户动迁一共补偿500个平方的面积,有10个房型(面积在60到140平方之间)供用户选择,需要找出5套、或者6套房型,加起来最接近500平方的选房方案。 从给定的元素中取出若干个元素,列出所有可能的排序结果。 网上有找到基础的做法是如下: /** * 组合:从数组a中选择n个数进行组合 */ public static void combinationSelect(int a[], int n){ System.out.println(String.format("C(%d, %d)= %…

2021-04-05 0条评论 65点热度 1人点赞 admin 阅读全文

本篇整理下Spring、SpringBoot的Controller中,获取提交的参数的方式 如http://www.example.com/test?id=1&cat=xxx @RequestMapping(value = "/test", method = RequestMethod.GET) public @ResponseBody String test(@RequestParam(value = "id", required = true) long id, @RequestParam(value …

2021-03-31 0条评论 75点热度 1人点赞 admin 阅读全文

本篇介绍如果利用javamail发送邮件 引入JavaMail依赖 如果是Maven,加入pom.xml: <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> 如果是Gradle,加入build.gradle implementatio…

2021-03-30 0条评论 67点热度 0人点赞 admin 阅读全文

经常遇到List、ArrayList需要拼接成用逗号或者空格隔开的文本,或者类似的文本转成List,最基本的方法是迭代List里的每一项,然后加到这个String上去,但是最后有一个符号,需要特别处理下,虽然并不是很难,但是稍微有点繁琐,且不优雅,例如: StringBuilder string = new StringBuilder(); for (String name : names) { string.append(name).append(","); } string = new StringBuilde…

2021-03-20 0条评论 68点热度 0人点赞 admin 阅读全文

Kaptcha是我项目中在用的一个验证码产生工具,产生的验证码比较漂亮且可定制程度比较高,所以很好用。 可配置的项目如下: 字体 字体的大小 字体颜色 验证码内容的范围(数字,字母,中文汉字!) 验证码图片的大小,边框,边框粗细,边框颜色 验证码的干扰线 验证码的样式(鱼眼样式、3D、普通模糊...) 生成的验证码示例: 如果是Maven,加入pom.xml: <dependency> <groupId>com.google.code.kaptcha</groupId> <…

2021-03-18 0条评论 94点热度 0人点赞 admin 阅读全文