標籤:ring control ace log 使用 串連 ota demo 加密
1.MD5工具類
package com.ssm.util;import java.security.MessageDigest;public class MD5Util { //將位元組數組轉成十六進位字串 private static String byteArrayToHexString(byte b[]) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) resultSb.append(byteToHexString(b[i])); return resultSb.toString(); } //對單個位元組轉換成整數進行取商取餘數計算 private static String byteToHexString(byte b) { 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 static String MD5Encode(String origin, String charsetname) { String resultString = null; try { resultString = new String(origin); // 獲得MD5摘要演算法的 MessageDigest 對象 MessageDigest md = MessageDigest.getInstance("MD5"); if (charsetname == null || "".equals(charsetname)) //將加密之後的位元組資料轉換成16進位的字串 resultString = byteArrayToHexString(md.digest(resultString .getBytes())); else resultString = byteArrayToHexString(md.digest(resultString .getBytes(charsetname))); } catch (Exception exception) { } return resultString; } private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};}
2.在登入註冊中使用MD5密碼編譯演算法
demo目錄結構
資料庫使用者表
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
package com.ssm.pojo;public class User { private Integer id; private String userName; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2.1DAO層 DAO層:DAO層主要是做資料持久層的工作,負責與資料庫進行聯絡的一些任務都封裝在此,
- DAO層的設計首先是設計DAO的介面,
- 然後在Spring的設定檔中定義此介面的實作類別,
- 然後就可在模組中調用此介面來進行資料業務的處理,而不用關心此介面的具體實作類別是哪個類,顯得結構非常清晰,
- DAO層的資料來源配置,以及有關資料庫連接的參數都在Spring的設定檔中進行配置。
UserDaO.java
package com.ssm.dao;import com.ssm.pojo.User;public interface UserDao { //使用者註冊 public int register(User user) ; //登陸 public User login(User user);}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ssm.dao.UserDao"> <resultMap type="com.ssm.pojo.User" id="UserResult"> <result property="id" column="id" /> <result property="userName" column="userName" /> <result property="password" column="password" /> </resultMap> <select id="login" parameterType="com.ssm.pojo.User" resultMap="UserResult"> select * from user where userName=#{userName} and password=#{password} limit 1 </select> <insert id="register" parameterType="com.ssm.pojo.User"> insert into user(userName,password) values(#{userName},#{password}) </insert></mapper>
2.2業務層:Service層
Service層:Service層主要負責業務模組的邏輯應用程式設計。
- 首先設計介面,再設計其實現的類
- 接著再在Spring的設定檔中配置其實現的關聯。這樣我們就可以在應用中調用Service介面來進行業務處理。
- Service層的業務實現,具體要調用到已定義的DAO層的介面,
- 封裝Service層的商務邏輯有利於通用的商務邏輯的獨立性和重複利用性,程式顯得非常簡潔。
UserService.java
package com.ssm.service.impl;import com.ssm.pojo.User;public interface UserService { public User login(User user); public int register(User user);}
UserServiceImpl.java
package com.ssm.service.impl;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.ssm.dao.UserDao;import com.ssm.pojo.User;@Service("userService")public class UserServiceImpl implements UserService { @Resource private UserDao userDao; public User login(User user) { // TODO Auto-generated method stub return userDao.login(user); } public int register(User user) { // TODO Auto-generated method stub return userDao.register(user); } }
2.3控制層:Controller層Controller層:Controller層負責具體的
業務模組流程的控制,
- 在此層裡面要調用Service層的介面來控制商務程序,
- 控制的配置也同樣是在Spring的設定檔裡面進行,針對具體的商務程序,會有不同的控制器,我們具體的設計過程中可以將流程進行抽象歸納,設計出可以重複利用的子單元流程模組,這樣不僅使程式結構變得清晰,也大大減少了代碼量。
RegisterController.java
JAVA中使用MD5加密工具類實現對資料的加密處理