# 18. Command Line Hasher
# 18. Command Line Hasher
Shiro 1.2.0 及以后版本提供了一個命令行程序,可以哈希字符串和資源(文件、url、classpath 、 實體)幾乎任何類型。 要使用它,您必須安裝一個 Java 虛擬機,并且“Java”命令必須能訪問訪問 $PATH 環境變量。
## Usage 使用
確保你可以訪問shiro-tools-hasher-version-cli.jar 文件。 你可以發現這在 buildroot/tools/hasher/target 目錄的源碼構建或通過Maven下載。
一旦你獲得 jar,您可以運行下面的命令:
> java -jar shiro-tools-hasher-X.X.X-cli.jar
這將打印所有可用選項標準(MD5、SHA1)和更復雜的密碼散列的場景。
## Common Scenarios 常見的場景
請參閱上面的命令打印指令。 它將提供一個詳盡的清單的指令將幫助您根據您的需要使用廚師。 然而,我們已經提供了一些快速參考用途/場景下面方便。
shiro.ini 用戶密碼
最好是保持用戶的密碼 shiro.ini (用戶) 部分安全。 添加一個新用戶帳戶,使用上面的命令 p (或 ——密碼 )選項:
> java -jar shiro-tools-hasher-X.X.X-cli.jar -p
它會問你輸入密碼確認
```
Password to hash:
Password to hash (confirm):
```
當命令執行,將會輸出 securely-salted-iterated-and-hashed 密碼,舉例:
```
$shiro1$SHA-256$500000$eWpVX2tGX7WCP2J+jMCNqw==$it/NRclMOHrfOvhAEFZ0mxIZRdbcfqIBdwdwdDXW2dM=
```
把這個值,并將其作為密碼的用戶定義行(其次是任何可選角色)中定義的 [INI 用戶配置](https://github.com/waylau/apache-shiro-1.2.x-reference/blob/master/I.%20Overview%20%E6%80%BB%E8%A7%88/4.%20Configuration%20%E9%85%8D%E7%BD%AE.md#users) 文檔。 例如
```
[users]
...
user1 = $shiro1$SHA-256$500000$eWpVX2tGX7WCP2J+jMCNqw==$it/NRclMOHrfOvhAEFZ0mxIZRdbcfqIBdwdwdDXW2dM=
```
您還需要確保隱式 iniRealm 使用一個 CredentialsMatcher 知道如何執行安全散列密碼比較。 所以配置的 \[main\] 部分:
```
[main]
...
passwordMatcher = org.apache.shiro.authc.credential.PasswordMatcher
iniRealm.credentialsMatcher = $passwordMatcher
...
```
### MD5 checksum 校驗和
雖然在 JVM上您可以用任意算法執行任何散列,但默認的散列算法是 MD5,常用于文件校驗和。 只使用 - r (或 ——資源 )選項顯示下面的值是一個資源位置(而不打印出你希望散列):
> java -jar shiro-tools-hasher-X.X.X-cli.jar -r RESOURCE\_PATH
默認情況下 RESOURCE\_PATH 將是文件路徑,但您可以指定 classpath 或URL 資源通過將 classpath: 或 url: 設置為前綴。
一些例子:
```
<command> -r fileInCurrentDirectory.txt
<command> -r ../../relativePathFile.xml
<command> -r ~/documents/myfile.pdf
<command> -r /usr/local/logs/absolutePathFile.log
<command> -r url:http://foo.com/page.html
<command> -r classpath:/WEB-INF/lib/something.jar
```
- Introduction
- 1. Introduction 介紹
- 2. Tutorial 教程
- 3. Architecture 架構
- 4. Configuration 配置
- 5. Authentication 認證
- 6. Authorization 授權
- 6.1. Permissions 權限
- 7. Realms
- 8. Session Management
- 9. Cryptography 密碼
- 10. Web
- 10.1. Configuration 配置
- 10.2. 基于路徑的 url 安全
- 10.3. Default Filters 默認過濾器
- 10.4. Session Management
- 10.5. JSP Tag Library
- 11. Caching 緩存
- 12. Concurrency & Multithreading 并發與多線程
- 13. Testing 測試
- 14. Custom Subjects 自定義 Subject
- 15. Spring Framework
- 16. Guice
- 17. CAS
- 18. Command Line Hasher
- 19. Terminology 術語
- 20. 10 Minute Tutorial 十分鐘教程
- 21. Beginner's Webapp Tutorial 初學者web應用教程
- 22. Application Security With Apache Shiro 用Shiro保護你的應用安全
- 23. CacheManager 緩存管理
- 24. Apache Shiro Cryptography Features 加密功能