導航:首頁 > 文檔加密 > 簡單加密信息

簡單加密信息

發布時間:2022-12-12 17:10:03

『壹』 怎麼設置簡訊加密

1)進入簡訊界面,選擇要加密的簡訊長按,彈出對話框,選擇「加密會話」彈出輸入密碼對話框(如果先在簡訊設置裡面設置過密碼,不會彈出輸入新密碼對話框,直接顯示已加密),輸入新密碼即可。

(2)進入簡訊界面後,按功能鍵,選擇「設置」進入,點擊「設置密碼」按鈕,如果之前對某條信息設置過密碼,點擊「設置密碼」按鈕後,需要輸入當前密碼(之前設置的那條信息的密碼)後,才能輸入新密碼,修改完成重復第一種操作即可

『貳』 如何用java實現字元串簡單加密解密

java加密字元串可以使用des加密演算法,實例如下:
package test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.*;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
/**
* 加密解密
*
* @author shy.qiu
* @since http://blog.csdn.net/qiushyfm
*/
public class CryptTest {
/**
* 進行MD5加密
*
* @param info
* 要加密的信息
* @return String 加密後的字元串
*/
public String encryptToMD5(String info) {
byte[] digesta = null;
try {
// 得到一個md5的消息摘要
MessageDigest alga = MessageDigest.getInstance("MD5");
// 添加要進行計算摘要的信息
alga.update(info.getBytes());
// 得到該摘要
digesta = alga.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
// 將摘要轉為字元串
String rs = byte2hex(digesta);
return rs;
}
/**
* 進行SHA加密
*
* @param info
* 要加密的信息
* @return String 加密後的字元串
*/
public String encryptToSHA(String info) {
byte[] digesta = null;
try {
// 得到一個SHA-1的消息摘要
MessageDigest alga = MessageDigest.getInstance("SHA-1");
// 添加要進行計算摘要的信息
alga.update(info.getBytes());
// 得到該摘要
digesta = alga.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
// 將摘要轉為字元串
String rs = byte2hex(digesta);
return rs;
}
// //////////////////////////////////////////////////////////////////////////
/**
* 創建密匙
*
* @param algorithm
* 加密演算法,可用 DES,DESede,Blowfish
* @return SecretKey 秘密(對稱)密鑰
*/
public SecretKey createSecretKey(String algorithm) {
// 聲明KeyGenerator對象
KeyGenerator keygen;
// 聲明 密鑰對象
SecretKey deskey = null;
try {
// 返回生成指定演算法的秘密密鑰的 KeyGenerator 對象
keygen = KeyGenerator.getInstance(algorithm);
// 生成一個密鑰
deskey = keygen.generateKey();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
// 返回密匙
return deskey;
}
/**
* 根據密匙進行DES加密
*
* @param key
* 密匙
* @param info
* 要加密的信息
* @return String 加密後的信息
*/
public String encryptToDES(SecretKey key, String info) {
// 定義 加密演算法,可用 DES,DESede,Blowfish
String Algorithm = "DES";
// 加密隨機數生成器 (RNG),(可以不寫)
SecureRandom sr = new SecureRandom();
// 定義要生成的密文
byte[] cipherByte = null;
try {
// 得到加密/解密器
Cipher c1 = Cipher.getInstance(Algorithm);
// 用指定的密鑰和模式初始化Cipher對象
// 參數:(ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE,UNWRAP_MODE)
c1.init(Cipher.ENCRYPT_MODE, key, sr);
// 對要加密的內容進行編碼處理,
cipherByte = c1.doFinal(info.getBytes());
} catch (Exception e) {
e.printStackTrace();
}
// 返回密文的十六進制形式
return byte2hex(cipherByte);
}
/**
* 根據密匙進行DES解密
*
* @param key
* 密匙
* @param sInfo
* 要解密的密文
* @return String 返回解密後信息
*/
public String decryptByDES(SecretKey key, String sInfo) {
// 定義 加密演算法,
String Algorithm = "DES";
// 加密隨機數生成器 (RNG)
SecureRandom sr = new SecureRandom();
byte[] cipherByte = null;
try {
// 得到加密/解密器
Cipher c1 = Cipher.getInstance(Algorithm);
// 用指定的密鑰和模式初始化Cipher對象
c1.init(Cipher.DECRYPT_MODE, key, sr);
// 對要解密的內容進行編碼處理
cipherByte = c1.doFinal(hex2byte(sInfo));
} catch (Exception e) {
e.printStackTrace();
}
// return byte2hex(cipherByte);
return new String(cipherByte);
}
// /////////////////////////////////////////////////////////////////////////////
/**
* 創建密匙組,並將公匙,私匙放入到指定文件中
*
* 默認放入mykeys.bat文件中
*/
public void createPairKey() {
try {
// 根據特定的演算法一個密鑰對生成器
KeyPairGenerator keygen = KeyPairGenerator.getInstance("DSA");
// 加密隨機數生成器 (RNG)
SecureRandom random = new SecureRandom();
// 重新設置此隨機對象的種子
random.setSeed(1000);
// 使用給定的隨機源(和默認的參數集合)初始化確定密鑰大小的密鑰對生成器
keygen.initialize(512, random);// keygen.initialize(512);
// 生成密鑰組
KeyPair keys = keygen.generateKeyPair();
// 得到公匙
PublicKey pubkey = keys.getPublic();
// 得到私匙
PrivateKey prikey = keys.getPrivate();
// 將公匙私匙寫入到文件當中
doObjToFile("mykeys.bat", new Object[] { prikey, pubkey });
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
/**
* 利用私匙對信息進行簽名 把簽名後的信息放入到指定的文件中
*
* @param info
* 要簽名的信息
* @param signfile
* 存入的文件
*/
public void signToInfo(String info, String signfile) {
// 從文件當中讀取私匙
PrivateKey myprikey = (PrivateKey) getObjFromFile("mykeys.bat", 1);
// 從文件中讀取公匙
PublicKey mypubkey = (PublicKey) getObjFromFile("mykeys.bat", 2);
try {
// Signature 對象可用來生成和驗證數字簽名
Signature signet = Signature.getInstance("DSA");
// 初始化簽署簽名的私鑰
signet.initSign(myprikey);
// 更新要由位元組簽名或驗證的數據
signet.update(info.getBytes());
// 簽署或驗證所有更新位元組的簽名,返回簽名
byte[] signed = signet.sign();
// 將數字簽名,公匙,信息放入文件中
doObjToFile(signfile, new Object[] { signed, mypubkey, info });
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 讀取數字簽名文件 根據公匙,簽名,信息驗證信息的合法性
*
* @return true 驗證成功 false 驗證失敗
*/
public boolean validateSign(String signfile) {
// 讀取公匙
PublicKey mypubkey = (PublicKey) getObjFromFile(signfile, 2);
// 讀取簽名
byte[] signed = (byte[]) getObjFromFile(signfile, 1);
// 讀取信息
String info = (String) getObjFromFile(signfile, 3);
try {
// 初始一個Signature對象,並用公鑰和簽名進行驗證
Signature signetcheck = Signature.getInstance("DSA");
// 初始化驗證簽名的公鑰
signetcheck.initVerify(mypubkey);
// 使用指定的 byte 數組更新要簽名或驗證的數據
signetcheck.update(info.getBytes());
System.out.println(info);
// 驗證傳入的簽名
return signetcheck.verify(signed);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 將二進制轉化為16進制字元串
*
* @param b
* 二進制位元組數組
* @return String
*/
public String byte2hex(byte[] b) {
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++) {
stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1) {
hs = hs + "0" + stmp;
} else {
hs = hs + stmp;
}
}
return hs.toUpperCase();
}
/**
* 十六進制字元串轉化為2進制
*
* @param hex
* @return
*/
public byte[] hex2byte(String hex) {
byte[] ret = new byte[8];
byte[] tmp = hex.getBytes();
for (int i = 0; i < 8; i++) {
ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
}
return ret;
}
/**
* 將兩個ASCII字元合成一個位元組; 如:"EF"--> 0xEF
*
* @param src0
* byte
* @param src1
* byte
* @return byte
*/
public static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[] { src0 }))
.byteValue();
_b0 = (byte) (_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 }))
.byteValue();
byte ret = (byte) (_b0 ^ _b1);
return ret;
}
/**
* 將指定的對象寫入指定的文件
*
* @param file
* 指定寫入的文件
* @param objs
* 要寫入的對象
*/
public void doObjToFile(String file, Object[] objs) {
ObjectOutputStream oos = null;
try {
FileOutputStream fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
for (int i = 0; i < objs.length; i++) {
oos.writeObject(objs[i]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 返回在文件中指定位置的對象
*
* @param file
* 指定的文件
* @param i
* 從1開始
* @return
*/
public Object getObjFromFile(String file, int i) {
ObjectInputStream ois = null;
Object obj = null;
try {
FileInputStream fis = new FileInputStream(file);
ois = new ObjectInputStream(fis);
for (int j = 0; j < i; j++) {
obj = ois.readObject();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return obj;
}
/**
* 測試
*
* @param args
*/
public static void main(String[] args) {
CryptTest jiami = new CryptTest();
// 執行MD5加密"Hello world!"
System.out.println("Hello經過MD5:" + jiami.encryptToMD5("Hello"));
// 生成一個DES演算法的密匙
SecretKey key = jiami.createSecretKey("DES");
// 用密匙加密信息"Hello world!"
String str1 = jiami.encryptToDES(key, "Hello");
System.out.println("使用des加密信息Hello為:" + str1);
// 使用這個密匙解密
String str2 = jiami.decryptByDES(key, str1);
System.out.println("解密後為:" + str2);
// 創建公匙和私匙
jiami.createPairKey();
// 對Hello world!使用私匙進行簽名
jiami.signToInfo("Hello", "mysign.bat");
// 利用公匙對簽名進行驗證。
if (jiami.validateSign("mysign.bat")) {
System.out.println("Success!");
} else {
System.out.println("Fail!");
}
}
}

『叄』 十大常見密碼加密方式

一、密鑰散列

採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。

二、對稱加密

採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

三、非對稱加密

非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。

四、數字簽名

數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。

五、直接明文保存

早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

六、使用MD5、SHA1等單向HASH演算法保護密碼

使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

七、特殊的單向HASH演算法

由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。

八、PBKDF2

該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

九、BCrypt

BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。

十、SCrypt

SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。

『肆』 給文字加密分享給朋友 - 最簡單的方法(T1.1 )

有時候想分享一些私密的信息給朋友,不想讓其他人看到,但無論是什麼通訊工具,都有可能被旁人看到或者被技術大拿監聽。這里介紹一個簡單的文字加密方法,只要你和朋友約定一個密碼,就可以把任意文字加密後發給朋友,朋友用相同的密碼解密就能看到你們之間私密的信息了哦!

下面是具體的步驟:

搜索「小仙英語伴讀」在右上方快捷工具中找到「文字加密」,或者直接訪問  這里  即可進入如下圖所示的文本加解密服務頁面。

直接在第一個文本框中輸入或粘貼原文字(手機上是在框中長按來進行粘貼),按「加密」或「解密」按鈕就可以進行加解密了。加解密之後的結果會顯示在下方的文本框中,之後按「復制結果」按鈕即可拷貝結果,用於粘貼到其他地方(郵件里、微信、QQ等)。

注意,如果不使用默認密碼(一般也都不會使用),務必在第二個文本框中輸入和對方約定好的密碼。這樣,得到的加密結果就是誰也看不懂的一段奇怪文字了。

對方用相同的步驟,將加密後的文字粘貼到第一個文本框中,即可進行解密。

『伍』 如何把手機里的信息加密,不讓其他人看見

若使用的是vivo手機,加密信息內容的方法如下:
進入信息--長按需要加密的簡訊會話--加密--輸入隱私密碼即可加密手機聯系人的信息。(聯系人需要保存到手機中才能進行加密設置)

設置軟體加密的方法如下:

1、Funtouch OS 3.0以下系統:進入i管家--軟體管理--軟體鎖,設置圖案密碼或使用數字密碼,設置完成後,點擊右上角的「繼續」,設置完成軟體密碼,即可設置軟體鎖的密保(即安全問題),然後點擊右上角的「完成」,點擊軟體後面對應的鎖狀圖標,即可加密;
2、Funtouch OS 3.0及以上系統:進入設置--指紋、面部與密碼 /指紋與密碼/安全--隱私與應用加密,設置隱私密碼密保,設置「密碼」「密保」完成後直接跳出將軟體加鎖的界面(部分機型需點擊「應用加密」),打開軟體後面對應的開關,即可加密。

『陸』 簡單的加密演算法——維吉尼亞密碼

學號:16030140019

姓名:   莫益彰

【嵌牛導讀】:凱撒密碼是一種簡單的加密方法,即將文本中的每一個字元都位移相同的位置。如選定位移3位:

原文:a b c

密文:d e f

由於出現了字母頻度分析,凱撒密碼變得很容易破解,因此人們在單一愷撒密碼的基礎上擴展出多表密碼,稱為「維吉尼亞」密碼。

【嵌牛鼻子】密碼學,計算機安全。

【嵌牛提問】維吉尼亞怎麼破解,8位維吉尼亞是否可破?維吉尼亞演算法的時間復雜度?

【嵌牛正文】

維吉尼亞密碼的加密

維吉尼亞密碼由凱撒密碼擴展而來,引入了密鑰的概念。即根據密鑰來決定用哪一行的密表來進行替換,以此來對抗字頻統計。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對如下明文加密:

TO BE OR NOT TO BE THAT IS THE QUESTION

當選定RELATIONS作為密鑰時,加密過程是:明文一個字母為T,第一個密鑰字母為R,因此可以找到在R行中代替T的為K,依此類推,得出對應關系如下:

密鑰:RE LA  TI  ONS  RE LA TION   SR ELA TIONSREL

明文:TO BE OR NOT TO BE THAT  IS  THE QUESTION

密文:KS ME HZ  BBL  KS ME MPOG AJ XSE JCSFLZSY

圖解加密過程:

        在維吉尼亞(Vigenère)的密碼中,發件人和收件人必須使用同一個關鍵詞(或者同一文字章節),這個關鍵詞或文字章節中的字母告訴他們怎麼樣才能前後改變字母的位置來獲得該段信息中的每個字母的正確對應位置。

維吉尼亞密碼的破解

維吉尼亞密碼分解後實則就是多個凱撒密碼,只要知道密鑰的長度,我們就可以將其分解。

如密文為:ABCDEFGHIJKLMN

如果我們知道密鑰長度為3,就可將其分解為三組:

組1:A D G J N

組2:B E H K

組3:C F I M

分解後每組就是一個凱撒密碼,即組內的位移量是一致的,對每一組即可用頻度分析法來解密。

所以破解維吉尼亞密碼的關鍵就是確定密鑰的長度。

確定密鑰長度

確定密鑰長度主要有兩種方法,Kasiski 測試法相對簡單很多,但Friedman 測試法的效果明顯優於Kasiski 測試法。

Kasiski 測試法

在英文中,一些常見的單詞如the有幾率被密鑰的相同部分加密,即原文中的the可能在密文中呈現為相同的三個字母。

在這種情況下,相同片段的間距就是密文長度的倍數。

所以我們可以通過在密文中找到相同的片段,計算出這些相同片段之間的間距,而密鑰長度理論上就是這些間距的公約數。

然後我們需要知道重合指數(IC, index of coincidence)的概念。

重合指數表示兩個隨機選出的字母是相同的的概率,即隨機選出兩個A的概率+隨機選出兩個B的概率+隨機選出兩個C的概率+……+隨機選出兩個Z的概率。

對英語而言,根據上述的頻率表,我們可以計算出英語文本的重合指數為

P(A)^2 + P(B)^2+……+P(Z)^2 = 0.65

利用重合指數推測密鑰長度的原理在於,對於一個由凱撒密碼加密的序列,由於所有字母的位移程度相同,所以密文的重合指數應等於原文語言的重合指數。

據此,我們可以逐一計算不同密鑰長度下的重合指數,當重合指數接近期望的0.65時,我們就可以推測這是我們所要找的密鑰長度。

舉例來說,對密文ABCDEABCDEABCDEABC

首先測試密鑰長度=1,對密文ABCDEABCDEABCDEABC統計每個字元出現的次數:

A: 4 B: 4 C: 4 D:3 E:3

那麼對於該序列的重合指數就為:(4/18)^2 + (4/18)^2 + (4/18)^2 +(3/18)^2 +(3/18)^2 != 0.65

然後測試密鑰長度=2,將密文ABCDEABCDEABCDEABC分解為兩組:

組1:A C E B D A C E B

組2:B D A C E B D A C

我們知道如果密鑰長度真的是2,那麼組1,組2都是一個凱撒密碼。對組1組2分別計算重合指數。

如果組1的重合指數接近0.65,組2的重合指數也接近0.65,那麼基本可以斷定密鑰長度為2。

在知道了密鑰長度n以後,就可將密文分解為n組,每一組都是一個凱撒密碼,然後對每一組用字母頻度分析進行解密,和在一起就能成功解密凱撒密碼。

上文已經說到,自然語言的字母頻度是一定的。字母頻度分析就是將密文的字母頻度和自然語言的自然頻度排序對比,從而找出可能的原文。

『柒』 如何對信息加密

簡訊加密方法僅限於安卓手機:

1、打開手機的「簡訊」功能,然後進入簡訊主界面,輕觸主功能鍵,調出設置菜單選項。

『捌』 如何使手機簡訊加密

您好,如果您有加密手機資料的需求,可以嘗試使用騰訊手機管家。騰訊手機管家支持四大類文件加密,分別為:照片、視頻、簡訊、文件。可安全保衛您的隱私資料,即使手機被盜,手機內存卡丟失,您都不用擔心隱私會泄露!同時有效防止木馬病毒盜取您的隱私資料。簡單介紹如下:

1.圖案密碼保護您的隱私。進入管家,在安全防護下找到「私密空間」,並設置圖案密碼開啟私密空間。

管家除了提供隱私保護功能外,騷擾攔截、軟體許可權管理、手機防盜、病毒查殺等也是管家提供的基礎安全防護功能,另外還能主動滿足您流量監控、空間清理、體檢加速、軟體搬家、等個性化的手機管理需求。是眾多用戶推薦、並使用的手機殺毒管理軟體。騰訊手機管家誠邀您進行體驗。

『玖』 JAVA 簡單加密信息

你這只不過是搭出來個架子給我們,你也沒說到底要怎麼做,java自身帶了多種加密類,你可以查幫助,還有是length不是leught
還有對外寫文件用
FileWriter fw = new FileWriter("test.txt");
fw.write(arrayc);

閱讀全文

與簡單加密信息相關的資料

熱點內容
騰訊幻核加密貓 瀏覽:782
雅思聽力真經pdf 瀏覽:442
甘肅戴爾伺服器虛擬化設計雲主機 瀏覽:236
怎麼購買蓋世童書APP 瀏覽:248
軍校的程序員 瀏覽:447
程序員被女警察追 瀏覽:455
剛畢業的程序員簡歷 瀏覽:696
安卓手機如何正確提升網速 瀏覽:248
linux系統編程教程 瀏覽:820
當程序員與bug 瀏覽:648
牟宗三全集pdf 瀏覽:580
android字元串的拼接字元串數組 瀏覽:792
比較難的演算法數據結構 瀏覽:147
命令的讀音 瀏覽:334
騰訊雲輕量應用伺服器加驅動 瀏覽:850
創建文件跟創建文件夾一樣嗎 瀏覽:438
虛擬雲伺服器測評 瀏覽:549
九型人格pdf下載 瀏覽:686
前端dev編譯速度 瀏覽:470
編程英文注釋 瀏覽:975