跳至主要内容

博文

目前显示的是 2018的博文

国密SM2签名封装成PKCS7格式

在国内做金融行业,难免会有被强制使用国密算法的情况,而且一般还会指定必须使用硬件加密机之类的设备,所以我也稍微的研究了一下国密算法,使用软算法签名并封装 PKCS7 格式(文档中的一个交互)。 以下是基于 Bouncy Castle 的示例,密钥对的生成可以参考 Bouncy Castle 中 test 包下 SM2 相关代码 public static String sign ( ) throws Exception { //加载公钥 byte [ ] plainText = "hello, world" . getBytes ( ) ; FileInputStream input = new FileInputStream ( "F:\\certificate\\public.cer" ) ; CertificateFactory certificateFactory = new CertificateFactory ( ) ; X509Certificate certificate = ( X509Certificate ) certificateFactory . engineGenerateCertificate ( input ) ; input . close ( ) ; //加载私钥,private为换成实际的私钥 PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec ( "private" . getBytes ( ) ) ; //SM2算法实际上为ECC算法,并指定了一些参数值,所以这里的参数是EC KeyFactory factory = KeyFactory . getInstance ( "EC" , "BC" ) ; PrivateKey privateKey = factory . generatePrivate ( spec ) ; //以下为签名并封装成PKCS7格式 byte [ ] signedMessag

MyBatis Generator扩展:实体类字段加上数据库注释

默认的 MyBatis Generator 生成实体类的时候,字段不会带上数据库已有的注释。此时可以扩展 MyBatis Generator ,使生成的实体类带上数据库已有的注释。 继承 org.mybatis.generator.internal.DefaultCommentGenerator 类 public class DatabaseRemarkCommentGenerator extends DefaultCommentGenerator { @Override public void addFieldComment ( Field field , IntrospectedTable introspectedTable , IntrospectedColumn introspectedColumn ) { if ( introspectedColumn . getRemarks ( ) != null && ! introspectedColumn . getRemarks ( ) . equals ( "" ) ) { field . addJavaDocLine ( "/**" ) ; field . addJavaDocLine ( " * " + introspectedColumn . getRemarks ( ) ) ; field . addJavaDocLine ( " */" ) ; } } } 把上述代码放入 MyBatis Generator 的 CLASSPATH 中。 修改配置文件 generatorConfig.xml ,把 commentGenerator 标签的 type 属性修改为刚才实现的类 < commentGenerator type = " org.mybatis.generator.plugin.DatabaseRemarkCommentGenerator " > < property

博客转移

记得最开始开通博客大概在高中,那时候用的是百度空间,文笔不算好,所以博文都还是转载的多,也在上面认识了不少人。之后过了不久,百度空间被关闭了。 然后下一个用的博客是网易163博客,用了一段时间之后就懒了,一直没更新,最近上去发现163博客也要被关闭了,变成了lofter提供服务。 刚开始参加工作的时候,用了OSC的博客,虽然文笔还是一样不好,但还是发表了一些博文,不过发表的博文数量并不多,内容多半是记录和学习笔记。 Blogger不同于OSC的博客,感觉上不限定于技术博文,所以以后也会在这里记录和分享生活,没事可以翻翻,留下个回忆。