分段加解密解决RSA“不正确的长度”的异常

  categories:java资料  tags:  author:

RSA 是常用的非对称加密算法。最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致。

RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。
RSA加密对明文的长度是有限制的,如果加密数据过大会抛出如下异常:

Exception in thread “main” javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
at com.sun.crypto.provider.RSACipher.a(DashoA13*..)
at com.sun.crypto.provider.RSACipher.engineDoFinal(DashoA13*..)
at javax.crypto.Cipher.doFinal(DashoA13*..)

RSAUtils.java

package security;

import java.io.ByteArrayOutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;… 阅读全文

win7下DOCKER详细安装教程

  categories:linux资料  author:

windows必须是64位的

1.下载程序包

安装包 https://github.com/boot2docker/windows-installer/releases(这个地址国内下载很慢)

用这个: https://get.daocloud.io/toolbox/

随着Docker的发展如日中天,着手安装使用Docker却成了大家的拦路虎,不过有了Toolbox,再也不用担心Docker的安装与使用了。本文对比于大家所熟知Boot2Docker命令行工具,简单的剖析了Toolbox安装器。

近日,Docker公司发布了Toolbox。Toolbox是一个安装器,目前支持Mac和Windows平台。使用它可以快速地在安装Docker工具集。本文翻译自Docker官方博客。

过去我们总听到有人说,在开发中很难使用入手使用Docker,尤其是你已经根据Compose定义过了你的应用程序,然后接下来要去单独安装Compose的情况。随着Compose、Kitematic以及Boot2Docker的普及,我们意识到我们需要让这些零碎的工具更好的在一起工作。

Toolbox可以安装你在开发中运行Docker时所需要的一切:Docker客户端、Compose(仅Mac需要)、Kitematic、Machine以及VirtualBox。Toolbox使用Machine和VirtualBox在虚拟机中创建了一个引擎来运行容器。在该虚拟机上,你可以使用Docker客户端、Compose以及Kitematic来运行容器。

它取代了Boot2Docker吗?

是的,玩转Docker,我们推荐Toolbox。

尽管Boot2Docker安装程序已经相当的受欢迎,但DockerToolbox是设计用来安装正在不断发展的Docker开发者工具集合,比如Kitematic、Machine、Swarm还有Compose。之前Boot2Docker还安装了一个叫Boot2Docker的命令行工具,以用来管理Docker虚拟机,在Toolbox中它已经被Machine取代了。

然而,在这个引擎下,Machine依然采用了Boot2DockerLinux发行版来运行容器。所不同的是,现在由Machine代替Boot2Docker命令行工具来管理这些容器。

如果你现在正在使用官方Boot2Docker(boot2docker-VM),DockerToolbox会提示你自动迁移到使用DockerMachine的虚拟机上。
 

下载最新版本的:Docker-install.exe即可。
该安装包安装完成后,系统上会多出三个软件:

Oracle VM VirtualBox
Git
Boot2Docker for Windows

以上三个默认安装即可。

2. 设置环境变量

在命令窗口中,输入ls 如果能找到命令说明环境添加正确。

3. 启动DOCKERT

在命令窗口中,切到docker的安装目录下

输入sh:
然后输入start.sh,等待启动


第一次启动中,如果有新版本会更新,时间比较长。

如果第二次启动,就非常快了。

4.

阅读全文

spring容器初始化和WEB项目启动加载

  categories:java资料  tags:  author:

当spring 容器初始化和WEB项目启动加载

在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查。

比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数。

而在Spring的web项目中,我们可以介入Spring的启动过程。我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现一个接口:

package com.yk.test.executor.processor
public class InstantiationTracingBeanPostProcessor implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
//需要执行的逻辑代码,当spring容器初始化完成后就会执行该方法。
}
}

同时在Spring的配置文件中,添加注入:

<!– 当Spring容器启动完成后执行下面的这个Bean –>
<bean class=”com.yk.test.executor.processor.InstantiationTracingBeanPostProcessor”/>

但是这个时候,会存在一个问题,在web 项目中(spring mvc),系统会存在两个容器,一个是root application context ,另一个就是我们自己的 projectName-servlet context(作为root application context的子容器)。

这种情况下,就会造成onApplicationEvent方法被执行两次。为了避免上面提到的问题,我们可以只在root application … 阅读全文

proguard混淆器使用指南

  categories:资料  author:

下载地址

http://proguard.sourceforge.net/

启动proguard

解压下载的proguard4.4beta3,解压后进入lib文件把proguard.jar拷贝到自己新建的文件夹里如图:

把需要混淆的jar和jar所依赖的包也放到新建的文件夹,都放在一起,如下图。

写一个配置文件,名称自己定,举个简单配置文件例子,内容如下,其中-injars:是你需要混淆的jar,-outjars:是你混淆后输出的jar,-libraryjars:是你混淆的jar需要所依赖的jar包,后面的不在一一说明,可以参考proguard文档,配置文件可以参考文档来对自己混淆的需求来写配置文件。

-injars TheFirstDesktopApplication1.jar

-outjars TheFirstDesktopApplication1_out.jar

-libraryjars <java.home>/lib/rt.jar

-libraryjars appframework-1.0.3.jar

-libraryjars swing-worker-1.1.jar

-printmapping proguard.map

-overloadaggressively

-defaultpackage ”

-allowaccessmodification

-dontoptimize

-keep public class *

{

public protected *;

}

-keep public class org.**

-keep public class it.**

阅读全文

Nginx模块fastcgi_cache的几个注意点

  categories:nginx资料  tags:  author:

在web项目中,大家都已经非常熟悉其架构流程了。都说Cache是万金油,哪里不舒服抹哪里。这些流程中,几乎每个环节都会进行cache。 从浏览器到webserver,到cgi程序,到DB数据库,会进行浏览器cache,数据cache,SQL查询的cache等等。对于fastcgi 这里的cache,很少被使用。去年年底,我对nginx的fastcgi_cache进行摸索使用。在我的测试过程中,发现一些WIKI以及网络上没被提到的注意点,这里分享一下。

从浏览器到数据库的流程图

这里是我的NGinx配置信息

01
02
03
04
05
06
07
08
09
10
11
12
13
#增加调试信息
add_header X-Cache-CFC "$upstream_cache_status - $upstream_response_time";
fastcgi_temp_path /dev/shm/nginx_tmp;
#cache设置
fastcgi_cache_path   /dev/shm/nginx_cache  levels=1:2 keys_zone=cfcache:10m inactive=50m;
fastcgi_cache_key "$request_method://$host$request_uri";
fastcgi_cache_methods GET HEAD;
fastcgi_cache   cfcache;
阅读全文

Notepad++插件介绍

  categories:资料  tags:  author:

Notepad++ 是一款非常有特色的编辑器,是一款开源软件,支持的语言: C, C++ , Java , C#, XML, HTML, PHP, Javascript。

notepad++ 是一款非常有特色的编辑器,是开源软件,可以免费使用。 功能有:
①、内置支持多达 27 种语法高亮度显示(囊括各种常见的源代码、脚本,值得一提的是,完美支持 .nfo 文件查看),也支持自定义语言;
②、可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,代码显示得非常有层次感!这是此软件最具特色的体现之一;
③、可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式(f11),支持鼠标滚轮改变文档显示比例,等等;
④、提供数个特色东东,如 邻行互换位置、宏功能,等等…现在网上有很多文件编辑器,这个却是不可多得的一款,不论是日常使用还是手写编程代码,都能让你体会到它独有的优势和方便。
支持的语言: c, c++ , java , c#, xml, html, php, javascript

下载地址:http://www.downg.com/soft/8049.html

 

下面介绍下国人常用的插件

插件下载地址(实时更新):http://sourceforge.net/projects/npp-plugins/files/

Notepad++插件的使用方法:… 阅读全文



快乐成长 每天进步一点点