1. 程式人生 > >shiro 密碼加密和解密

shiro 密碼加密和解密

public class MyRealm extends AuthorizingRealm {

    private static Logger logger = LoggerFactory.getLogger(MyRealm.class);

    public MyRealm() {
        super();    //To change body of overridden methods use File | Settings | File Templates.
    }
//認證
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {
        UsernamePasswordToken token = (UsernamePasswordToken) authcToken;

        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;

        String username = usernamePasswordToken.getUsername();

/*        logger.info("使用者名稱:{}", token.getUsername());
        logger.info("使用者密碼:{}", token.getPassword());*/


        if (username == null) {
            throw new AccountException("使用者名稱不能為空");
        }

        //TODO 取資料庫
        User user = new User();
        user.setName("湯湯");
      //  user.setPassWord("5201314");
        user.setPassWord("Mug2tZdS/WCdxOOfCHXPcdQyVT5kqBimrBM04UEj9Dma+XaasHvZZckw/OGjWj8J");
        user.setRoles("admin");
        return new SimpleAuthenticationInfo(user.getName(), user.getPassWord(), getName());
    }
   //授權
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        if (principals == null) {
            throw new AuthorizationException("Principal物件不能為空");
        }

      /*  String userName = (String) principals.fromRealm(getName()).iterator().next();*/
        String userName = (String) principals.fromRealm(getName()).iterator().next();

        if (userName != null && userName.equals("湯湯")) {
            SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
           /* info.addStringPermission("admin");*/

            List<String> rolesList = new ArrayList<String>();
            rolesList.add("admin");

            info.addRoles(rolesList);
            return info;
        } else {
            return null;
        }
    }
}


相關推薦

shiro 密碼加密解密

public class MyRealm extends AuthorizingRealm { private static Logger logger = LoggerFactory.getLogger(MyRealm.class); public MyRealm() {

密碼加密解密

加密 代碼 cnblogs void logs tint image () com 1.程序設計思路 設置兩個功能,加密和解密,加密時先算ASCII值,然後根據規則改變ASCII值,輸出對應的加密字符串,解密時,同樣算出字符串的ASCII,根據規則改變ASCII值,輸出對應

BCrypt 密碼加密解密

專案中用到需要對登入密碼進行加密 ,使用BCrypt 主要是能實現每次加密的值都是不一樣的。<!-- 密碼加密 https://mvnrepository.com/artifact/org.mindrot/jbcrypt --><dependency>

什麽是私有密鑰密碼技術——密鑰加密算法采用同一把密鑰進行加密解密

解密 網絡安全 位操作 線性復雜 對稱 大量 控制 全局 相位 什麽是私有密鑰密碼技術 私有密鑰(Symmetric Key),又叫對稱密鑰。密鑰加密算法采用同一把密鑰進行加密和解密。它的優點是加密和解密速度非常快,但密鑰的分發和管理比較困難。信息的發送者和接收者必須明確同

(九) shiro採用AES加密解密

1 程式碼 AesEncoding.java package nufront.shiro.util; import java.security.Key; import org.apache.shi

MySQL資料庫加密解密~認證登陸密碼(mysql.user)MySQL不區分大小寫

MySQL資料庫認證密碼有兩種方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之後的版本都是MySQLSHA1加密 還有函式:AES_ENCRYPT()加密函式

登入記住使用者名稱密碼時對使用者名稱密碼進行加密解密

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquer

js的常見的三種密碼加密方式-MD5加密、Base64加密解密sha1加密詳解總結

寫在前面寫前端的時候,很多的時候是避免不了註冊這一關的,但是一般的註冊是沒有任何的難度的,無非就是一些簡單的獲取使用者輸入的資料,然後進行簡單的校驗以後呼叫介面,將資料傳送到後端,完成一個簡單的註冊的流程,那麼一般來說,密碼是不做加密的。但是也有一些資料庫裡面存放的是加密後的

js 使用者名稱,密碼 登陸加密解密

<1> 1.利用後臺將使用者名稱和密碼進行base64加密,瀏覽器輸入登入地址url進行登入 var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

SpringBoot+Shiro學習之密碼加密登入失敗次數限制

/*表結構插入*/DROP TABLE IF EXISTS `u_permission`;CREATE TABLE `u_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `url` varchar(256) DEFAULT NULL COMME

利用^異或進行密碼加密解密

import java.util.Scanner; public class Example {     public static void main(String[] args) {         Scanner scan = new Scanner(System.i

加密解密會員註冊密碼

可以自己寫個加密解密的程式.可逆的.一般是用MD5進行加密.資料庫寫入的資料是加密後的.不過這種加密方法是不可逆的. 寫了個加密,解密的程式,很簡單的 :) <% @Language="JavaScript" %><%var pwd = "灰豆";funct

關於簡單的加密解密算法

sss 建議 ace class 算法 dsm length pac data 加密解密 最簡單的就是簡單的字符串連接和運算,可是直接對字符串操作比較麻煩,所以建議一般做法是先把string轉換為byte數組後再進行簡單的異或運算或者其它運算進行加密和解密,終於比對

運維學習之加密解密

運維 網絡 安全 運維學習之加密與解密: 眾所周知,在網絡的世界裏不存在絕對的安全性。各種釣魚網站,病毒等等危害著我們的網絡環境。所以,作為一個運維人員,在我們利用網絡進行通信時,保證通信的機密性、完整性、可用性是必要的。 我們的日常生活中有以下三點威脅網絡安全的行為: 1.威脅

Java DES 加密解密源碼

ex18 detail r文件 index nco keyword [] 接口 crypto Java密碼學結構設計遵循兩個原則: 1) 算法的獨立性和可靠性。 2) 實現的獨立性和相互作用性。 算法的獨立性是通過定義密碼服務類來獲得。用戶只需了解密碼算法的概念,而不用

node加密解密字符串

string 引入 created require ring 地址 var final 變量 參考地址: http://www.cnblogs.com/laogai/p/4664917.html 第一步:引入模塊 var crypto = require(‘crypto‘)

使用Python進行AES加密解密

Coding color www tor 修改 1年 add 思想 href 摘錄於:http://blog.csdn.net/nurke/article/details/77267081 另外參考:http://www.cnblogs.com/kaituorensheng

shell整理(38)===凱撒加密解密

加密 凱撒 實現如下圖所示:[[email protected] shell]# bash zong.sh ==================凱撒加密解密============================== 1)輸入字符串,進行凱撒加密(輸入的字符串只能是字母、數字、空格) 2)已

JavaScript前端Java後端的AES加密解密

proto creat eight prop pen 保持 超出範圍 system creator 在實際開發項目中,有些數據在前後端的傳輸過程中需要進行加密,那就需要保證前端和後端的加解密需要統一。這裏給大家簡單演示AES在JavaScript前端和Java後端是如何實現

springcloud-加密解密

之前 endpoint soft security nload network class 處理器 end Spring Cloud具有一個用於在本地解密屬性值的Environment預處理器。它遵循與Config Server相同的規則,並通過encrypt.*具有相