java xml加密_JAVA中使用MD5加密工具类实现对数据的加密处理

1.MD5工具类

packagecom.ssm.util;importjava.security.MessageDigest;public classMD5Util {//将字节数组转成十六进制字符串

private static String byteArrayToHexString(byteb[]) {

StringBuffer resultSb= newStringBuffer();for (int i = 0; i < b.length; i++)

resultSb.append(byteToHexString(b[i]));returnresultSb.toString();

}//对单个字节转换成整数进行取商取余数计算

private static String byteToHexString(byteb) {int n =b;if (n < 0)

n+= 256;int d1 = n / 16;int d2 = n % 16;//根据下标d1,d2去数组hexDigits的数据

return hexDigits[d1] +hexDigits[d2];

}public staticString MD5Encode(String origin, String charsetname) {

String resultString= null;try{

resultString= newString(origin);//获得MD5摘要算法的 MessageDigest 对象

MessageDigest md = MessageDigest.getInstance("MD5");if (charsetname == null || "".equals(charsetname))//将加密之后的字节数据转换成16进制的字符串

resultString =byteArrayToHexString(md.digest(resultString

.getBytes()));elseresultString=byteArrayToHexString(md.digest(resultString

.getBytes(charsetname)));

}catch(Exception exception) {

}returnresultString;

}private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5","6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};

}

2.在登录注册中使用MD5加密算法

demo目录结构

20180111000403778239.png

数据库用户表

CREATE TABLE `user` (

`id`int(20) NOT NULL AUTO_INCREMENT COMMENT ‘编号‘,

`userName`varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT ‘用户名‘,

`password`varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT ‘密码‘,PRIMARY KEY(`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

pojo对象User.java

packagecom.ssm.pojo;public classUser {privateInteger id;privateString userName;privateString password;publicInteger getId() {returnid;

}public voidsetId(Integer id) {this.id =id;

}publicString getUserName() {returnuserName;

}public voidsetUserName(String userName) {this.userName =userName;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}

}

2.1DAO层

DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,

DAO层的设计首先是设计DAO的接口,

然后在Spring的配置文件中定义此接口的实现类,

然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,

DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

UserDaO.java

packagecom.ssm.dao;importcom.ssm.pojo.User;public interfaceUserDao {//用户注册

public intregister(User user) ;//登陆

publicUser login(User user);

}

UserMapper.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from

user where userName=#{userName} and password=#{password} limit 1

insert into user(userName,password)

values(#{userName},#{password})

2.2业务层:Service层

Service层:Service层主要负责业务模块的逻辑应用设计。

首先设计接口,再设计其实现的类

接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。

Service层的业务实现,具体要调用到已定义的DAO层的接口,

封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

UserService.java

packagecom.ssm.service.impl;importcom.ssm.pojo.User;public interfaceUserService {publicUser login(User user);public intregister(User user);

}

UserServiceImpl.java

packagecom.ssm.service.impl;importjavax.annotation.Resource;importorg.springframework.stereotype.Service;importcom.ssm.dao.UserDao;importcom.ssm.pojo.User;

@Service("userService")public class UserServiceImpl implementsUserService {

@ResourceprivateUserDao userDao;publicUser login(User user) {//TODO Auto-generated method stub

returnuserDao.login(user);

}public intregister(User user) {//TODO Auto-generated method stub

returnuserDao.register(user);

}

}

2.3控制层:Controller层

Controller层:Controller层负责具体的业务模块流程的控制,

在此层里面要调用Service层的接口来控制业务流程,

控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

RegisterController.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xml加密XML Encryption)是w3c加密xml的标准。这个加密过程包括加密xml文档的元素及其子元素,通过加密xml的初始内容将被替换,但其xml格式仍然被完好的保留。 介绍 我们有3个加密xml的方法 1、仅仅使用对称加密的方法加密xml 这种加密方法只使用一个密钥,也就是说无论是加密xml还是解密xml使用一个相同的密钥。因为这个密钥不会在被加密xml保存,所以我们需要在加密和解密的过程加载这个密钥并保护它不被窃取。 2、使用对称加密和非对称加密相结合的方法来加密xml 这种方法需要一个用于加密数据的对称密钥和一个用于保护这个对称密钥的非对称密钥。被加密的对称密钥和被加密数据一起保存在xml文档。当用私有非对称密钥解密密钥的时候要用公开非对称密钥对密钥进行加密。 本文就将使用这种方法。想学到其他更多的方法请参看MSDN等到更多的信息。 (译者注:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。) 3、使用X.509加密xml,这种方法是用X.509作为非对称密钥,它由诸如VeriSign之类的第三方提供。 方法 不管xml加密是如何完成的,保存加密数据总是用两种方法之一。 1、加密后所有的元素都被命名为 2、加密后只有数据被替换,而元素名称仍然是可读的,不会发生变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值