JAVA中使用MD5加密工具類實現對資料的加密處理

來源:互聯網
上載者:User

標籤: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加密工具類實現對資料的加密處理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.