在学习Spring Boot过程中经常遇到把XX类作为Bean注入Spring容器中,那个Bean到底是什么呢?从知乎上看到一个回答。

在之前的文章中介绍了Maven的安装,现在基于Java的NanoHTTPD这个库来讲下Maven的使用。

Maven 简介

Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。

什么是JVM

JVM (Java Virtual Machine)有多个解释,它可以是Java虚拟机工作的规范,也可以是满足规范的计算机程序

Debian系统的软件源在/etc/apt/sources.list文件中,第三方添加的源也可能在/etc/apt/sources.list.d目录中

C程序中,函数是不能直接返回一个完整的数组的,我们指定数组本质是一个指针常量,那么能不能通过返回指针的方式间接返回数组呐?答案是不完全可以,函数内变量是局部变量,返回局部变量的地址是不可以的,但是由于静态变量的作用域为全局所有可以返回静态变量。所以这里有两种方式从函数中活动数组:返回静态变量地址、以指针参数的形式获得数组。

一个项目的基本目录结构

/ #根目录
|
|
|---- doc # 文档
|
|---- example # 示例
|
|---- include # 头文件
|
|---- src # 源码
|
|---- tests # 测试
|
|---- Makefile 
|
|---- LICENSE
|
|---- README

在工作中要对接一些下位机,返回的数据中有些是BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制中的0~9这10个数码,是一种二进制的数字编码形式。以下是8421类型的BCD码,还有其它格式的BCD码,但是没怎么遇到过,暂时不表。

前言

在之前的文章中,实现了PKCS7填充,但是IV是固定的,从安全的角度来说,每经过一次加密和解密后IV应当重新随机生成。通过搜索,得知了一个概念:密码学安全伪随机数生成器(亦作密码学伪随机数生成器,英文:Cryptographically secure pseudo-random number generator,通称CSPRNG),之后在Github上找了一个C语言实现的库:CSPRNG

前言

在上一篇介绍Tiny AES中,该库本身是没有提供填充模式的,所以,明文,密码,初始向量都是16字节的倍数,但是在实际使用中,明文是没有办法时时刻刻都是16字节的倍数的。所以需要找到一种填充方式。大部分PADDING模式为PKCS5PKCS7,由于PKCS5填充是的8字节,PKCS7填充的是16字节,所以推荐使用PKCS7

前言

在上一篇文章中介绍了AES加密涉及到的参数,本文将介绍一个用C语言实现的AES库————tiny-AES-c,简单易使用。