精华内容
下载资源
问答
  • 单表代换密码体制

    2021-07-27 20:33:04
    单表代换密码体制 所谓代换,是指将明文的字符,用字符集的其他字符代替,从而变成密文。单表代换,顾名思义,有一张代换表,表中描述了代换关系。值得注意的是,代换关系可以是一对多,但是必须要保证的可逆性,即...

    一、单表代换密码体制

    所谓代换,是指将明文的字符,用字符集的其他字符代替,从而变成密文。单表代换,顾名思义,有一张代换表,表中描述了代换关系。值得注意的是,代换关系可以是一对多,但是必须要保证的可逆性,即一个密文字符唯一对应于一个明文的字符,也就是密文解密的唯一性,一个密文解密出一个明文。不过,一个明文可以加密成多个密文。下面举一个例子。
    假设字符集为{a,b,c},,代换所用的字符集为{1,2,3,4,5,6}。
    代换表如下:

    明文字符abc
    密文字符1,23,45,6

    则明文ab可以加密成13,14,23,或24这四种密文中的一种。反之,密文13只能解密成ab。
    这是代换的一般形式。
    当然,我们通常采用的更加特殊的代换,也就是明文字符集和密文字符集一样,这样加解密的过程就是一一对应。每一张代换表就是一个密钥,不一定满足某种规律,他只是对应于字符集的一种排列。所以,一个有n个字符的字符集,最多有n!种不同的代换表,也就是密钥空间为n!。

    二、英文字母单表代换

    现在给出一个26个小写英文字母的单表代换例子。

    #include<iostream>
    #include<map>
    using namespace std;
    //encrypt, message is clear text and table is the substitution table.
    string encrypt(string message,map<char,char>& table){
    	for(int i=0;i<message.size();i++){
    		message[i]=table[message[i]];
    	}
    	return message;
    }
    //decipher, rtable is the inverse of substitution table
    string decipher(string ciphertext,map<char,char>& rtable){
    	for(int i=0;i<ciphertext.size();i++){
    		ciphertext[i]=rtable[ciphertext[i]];
    	}
    	return ciphertext;
    }
    int main(){
    	map<char,char> table,rtable;
    	table['a']='n',table['b']='d',table['c']='q',table['d']='g',table['e']='i';
    	table['f']='a',table['g']='m',table['h']='z',table['i']='s',table['j']='w';
    	table['k']='y',table['l']='t',table['m']='c',table['n']='l',table['o']='f';
    	table['p']='r',table['q']='e',table['r']='p',table['s']='k',table['t']='u';
    	table['u']='o',table['v']='x',table['w']='v',table['x']='j',table['y']='h',table['z']='b';
    	for(auto it:table){
    		rtable[it.second]=it.first;
    	}
    	cout<<"Please input message:";
    	string message;
    	cin>>message;
    	cout<<"The ciphertext is:";
    	string ciphertext;
    	ciphertext=encrypt(message,table);
    	cout<<ciphertext<<endl;;
    	cout<<"After deciphering:"<<decipher(ciphertext,rtable)<<endl;
    }
    
    展开全文
  • 目录应用密码学:古典密码技术单表代替密码多表代替密码 单表代替密码 1.一般单表代替密码 一般单代替密码的原理是以26个英文字母集合上的一个置换Π(派)为密钥,对明文中的每一个字母依次进行变换,变换的方式是...

    应用密码学:单表代替密码简单介绍

    代替密码(Substitution Cipher)



    原理

    一般单代替密码的原理是以26个英文字母集合上的一个置换Π(派)为密钥,对明文中的每一个字母依次进行变换,变换的方式是把明文中的每个字母用它在置换出来的对应项去代替。

    用自己的话来说:
    先按一定顺序写出26个英文字母,这里我们按字母表的顺序,
    例如:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
    然后按照某种自定义的方法把上面的顺序打乱,依次排列在下方,就形成了最简单的代替密码
    例如:
    |原表| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
    |代替| Q | W | E | R | T | Y | U | I | O | P | A | S | D | F | G | H | J | K | L | Z | X | C | V | B | N | M |
    这个对应表就是所谓的密钥
    

    密钥

    同上表
    |原表| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
    |代替| Q | W | E | R | T | Y | U | I | O | P | A | S | D | F | G | H | J | K | L | Z | X | C | V | B | N | M |
    

    加密

    我们用上面这个表来加密一段话看看效果
    例如:
    M明文:my name is yg
    ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
    C密文:dn fqdt ol nu

    对应密钥写出密文为:dn fqdt ol nu


    解密

    将加密的密钥 逆置换 后可以得到解密的密钥(将’代替’这一行重新排序,以这行为主)

    |代替| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
    |原表| K | X | V | M | C | N | O | P | H | Q | R | S | Z | Y | I | J | A | D | L | E | G | W | B | U | F | T |
    

    将密文用原表的字母代替就可以完成解密得到明文
    C密文:dn fqdt ol nu
    ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
    M明文:my name is yg


    展开全文
  • 第二步是根据密文字母的频次统计,确定某些密文字母对应的明文字母可能是字母频率统计中的哪些字母。此例中 密文字母 对应的明文字母 O,D,B,V e,t,r,l 第三步是利用自然语言的文字结合规律进行猜测。D经常出现...

    二、由独立试验产生双字母。根据Beker在1982年统计的英文双字母的频数给出了双字母的频率。       统计出的英文双字母的概率最大的30对字母按概率大小排列为:

    th    he    in    er    an    re    ed    on    es    st    en    at    to    nt    ha    nd    ou    ea    ng    as    or    ti    is    et    it    ar    te     se    hi    of

    只要我们随意统计足够长的英文课文,只要内容不是太特殊,其结果一定和上面的概率基本相同,这也表明双字母在英文课文中出现的概率是基本可预测的,它为密码分析提供了又一方面的依据。

    类似的,我们还可以考察英文课文中三字母出现的频率。仍按Beker在1982年统计的结果(样本总数100 360)得到概率最大的20组三字母按概率大小排列为:

    the    ing    and    her    ere    ent    tha    nth    was    eth    for    dth    hat    she    ion    his    sth    ers    ver

    特别,the出现的频率几乎为ing的3倍。

    应当强调指出,在利用统计分析法时,密文量要足够大,否则会加大密码攻击的难度。在实际通信中,除了字母外,还有诸如标点、数字等字符,它们的统计特性也必须考虑进去。数据格式、报头信息对于密码体制的安全有重要意义,在密码分析中也起着重要的作用。

    在分析或攻击一份密报时利用英文的下述统计特性很有帮助。

    ⑴冠词the对英文的统计特性影响很大,它使t,h,th,he和the在单字母、双字母和三字母的统计中都为高概率的元素。

    ⑵英文单词中以 E,S,D,T 为结尾的超过一半

    ⑶英文单词中以 T,A,S,W 为起始字母的约占一半

    ⑷①在分析或攻击密文时应先找突破口,一般来说,先从the a i入手。(能一个字母独立作为单词的只有a、I,而且频率较高时优先考虑a)

    ②如果有“’”出现,“’”后的一个字母只能是t s l d v中的一个;如果是两个字母,则只能是re ll。(两个不同字母即是re,相同即是ll)

    ③其它规律:如果四字单词词末有两个相同字母,往往是ll;

    以a开头的三字单词只能是and are中的一个;

    两个字母的组合中如果出现q*,则*是u(q后几乎总是u);

    如果一个单词的开头和结尾是同一个字母,最可能的是:s t d;

    两个都是辅音的双字母组合,常含有n或t;io、ou和ea是最常见的双元音字母组;

    如果单词的头两个字母都是辅音,则第二个字母最可能是:r、l和h;

    如果一个三次以三个辅音结尾,那最常见的是-ght和-tch;

    反向双字母组合: er-re, es-se, an-na, it-ti, on-no, en-ne, ot-to,ed-de, st-ts, at-ta, ar-ra, in-ni;

    小词的使用频率

    1-letter: a,i,o

    2-letter: of,to,in,is,it,be,as,at

    3-letter: the,and,for,are,but,not,you,all

    4-letter: that,with,have,this,will,your,from,they

    5-letter: which,would,there

    元音字母:a,e,i,o,u

    元音后最常见的字母是n,元音前最常见的字母是h

    常见的双字母前缀 re co un com il ir up

    最常用的三字母后缀 ion ing

    最常见词尾 ed es er

    【例】

    1.攻击例题:

    给定密文为GROX CMRYYVLYIC COXN COMBOD WOCCKQOC DY OKMR YDROB DROI YPDOX SXFOXD K MYNO LI VODDSXQ OKMR VODDOB YP DRO KVZRKLOB BOZBOCOXD KXYDROB YXO

    攻击的第一步是做出密文字母出现的频次分布表

    22e90ba55c5d3be2fff7138b045ac576.png

    第二步是根据密文字母的频次统计,确定某些密文字母对应的明文字母可能是单字母频率统计表中的哪些字母。此例中

    密文字母           对应的明文字母

    O,D,B,V                e,t,r,l

    第三步是利用自然语言的文字结合规律进行猜测。D经常出现在词头或词尾,故猜测它与t对应;而P经常在词尾出现而未在词头出现,所以猜测它与明文字母e对应;K单独出现且频率较高,猜测与a对应。

    利用双字母、三字母统计特性及元音辅音拼写知识,可猜测如下:

    4f4627a1a80f797133ce5bff3e9fde29.png

    由此不难猜出:GROX是when,OKMR是each,VODDSXQ是letting,KXYDROB是another,DY是to。

    再得到下表:

    b7075b4984ae834d60f786af922f1b50.png

    再做进一步确定就可确定C,W,I,N,F,Q,Z对应的明文字母。经过整理恢复的明文如下:

    when schoolboys send secret messages to each other they often invent a code by letting each letter of the alphaber represent another one.

    算法实现

    1 #include 2 #include 3 #include 4 using namespacestd;5 const char c[27]={'d','j','k','z','u',6 'x','c','m','l','i','w','b','v','n','o','p',7 'q','a','r','s','g','h',8 'f','t','y','e',' '};9 void encryption(ifstream& fin,ofstream&fout);10 intmain()11 {12 ifstream fin;13 ofstream fout;14 fin.open("file1_1.in");15 if(fin.fail())16 {17 cout<

    31 {32 charnext;33 charch;34 inti;35 while(fin.get(next))36 {37 if(next>='a'&&next<='z')38 {39 i=next-'a';40 ch=c[i];41 fout<

    44 {45 fout<

    50 {51 charch;52 charchout;53 while(fin.get(ch))54 {55 for(int i=0;i<=26;i++)56 {57 if(ch==c[i])58 {59 if(i==26)60 {61 fout<

    64 {65 chout=char('a'+i);66 fout<

    输入文件file1_1.in

    //file1_1.in

    we will attack tomorrow morning

    输出文件file1_1.out

    //file1_1.out

    fu flbb dssdkw sovoaaof voanlnc

    展开全文
  • 单表替换密码

    2021-03-16 02:05:58
    要求:实现单表替换密码,用键盘接收明文和密钥,屏幕答应替换表和密文,大小写敏感,输入健壮性。实际问题:密钥处理应该是这个程序的重点,加密和解密都没有什么要注意的地方。用key[]数组接收keytext[],并分三...

    要求:

    实现单表替换密码,用键盘接收明文和密钥,屏幕答应替换表和密文,大小写敏感,输入健壮性。

    实际问题:

    密钥处理应该是这个程序的重点,加密和解密都没有什么要注意的地方。用key[]数组接收keytext[],并分三部分处理。

    第一部分统一换为小写:

    //-----------------处理大写为小写------------------

    int i, j, z, len = strlen(Ktext);

    for (i = 0; i < len; i++)

    if (Ktext[i] >= 65 && Ktext[i] <= 90)

    Ktext[i] = Ktext[i] + 32;

    第二部分去掉重复字母和标点符号:

    //----------------去掉重复和标点符号---------------

    for (i = 0, j = 0; i < strlen(Ktext); i++)

    {

    if (i == 0 && Ktext[i] >= 97 && Ktext[i] <= 122)//第一位直接复制过去

    {

    K[j] = Ktext[i];

    j++;

    }

    else if (i != 0 && Ktext[i] >= 97 && Ktext[i] <= 122)//先复制到key中,在拿出来于密钥文前面的字符对比,无则复制继续,有则置空

    {

    K[j] = Ktext[i];

    for (z = 0; z < i; z++)

    {

    if (K[j] == Ktext[z])

    K[j] = NULL;

    }

    if (K[j] != NULL)

    j++;

    }

    }

    第三部分就是用未出现的字母顺序补位:

    //------------用未出现的字母补全key-------------

    len = strlen(K);

    char temp = 'a' - 1;

    int tag = 0;//设定标识位,扫描有相同字符置为1,无则置为0

    for (i = 0; i < 26; i++)

    {

    temp = temp + 1;

    for (j = 0; j < len; j++)

    {

    if (K[j] == temp)

    tag = 1;

    }

    if (tag == 1) {//根据标志位的值选择是否补位

    tag = 0;

    }

    else if (tag == 0) {

    K[len] = temp;

    len += 1;

    }

    }

    程序源码:

    // Console-单表代换密码.cpp

    //2015-10-3

    #include "stdafx.h"

    #include

    using namespace std;

    int text_len = 500;

    //处理key

    void make_key(char[], char[]);

    //加密

    void encrypt(char [], char[], char[]);

    //解密

    void decrypt(char[], char[], char[]);

    int main()

    {

    //申请密钥文,密钥,原文空间

    char *keytext, *key, *plaintext, *ciphertext;

    int en_len;

    plaintext = (char*)calloc(text_len, sizeof(char));

    keytext = (char*)calloc(text_len, sizeof(char));

    key = (char*)calloc(27, sizeof(char));

    cout << "-------input keytext-------" << endl;

    cin.getline(keytext, text_len);

    //处理密钥,输出替换表

    make_key(keytext, key);

    cout << "-------exchange list-------"<

    cout << key <

    //根据原文长度,申请密文空间

    cin.getline(plaintext, text_len);

    en_len = strlen(plaintext);

    ciphertext = (char*)calloc(en_len + 1, sizeof(char));

    //加密,输出密文

    encrypt(key, plaintext, ciphertext);

    cout <

    //解密,输出原文

    decrypt(key, ciphertext,plaintext);

    cout <

    return 0;

    }

    //处理key

    void make_key(char Ktext[], char K[])

    {

    //-----------------处理大写为小写------------------

    int i, j, z, len = strlen(Ktext);

    for (i = 0; i < len; i++)

    if (Ktext[i] >= 65 && Ktext[i] <= 90)

    Ktext[i] = Ktext[i] + 32;

    //----------------去掉重复和标点符号---------------

    for (i = 0, j = 0; i < strlen(Ktext); i++)

    {

    if (i == 0 && Ktext[i] >= 97 && Ktext[i] <= 122)//第一位直接复制过去

    {

    K[j] = Ktext[i];

    j++;

    }

    else if (i != 0 && Ktext[i] >= 97 && Ktext[i] <= 122)//先复制到key中,在拿出来于密钥文前面的字符对比,无则复制继续,有则置空

    {

    K[j] = Ktext[i];

    for (z = 0; z < i; z++)

    {

    if (K[j] == Ktext[z])

    K[j] = NULL;

    }

    if (K[j] != NULL)

    j++;

    }

    }

    //------------用未出现的字母补全key-------------

    len = strlen(K);

    char temp = 'a' - 1;

    int tag = 0;//设定标识位,扫描有相同字符置为1,无则置为0

    for (i = 0; i < 26; i++)

    {

    temp = temp + 1;

    for (j = 0; j < len; j++)

    {

    if (K[j] == temp)

    tag = 1;

    }

    if (tag == 1) {//根据标志位的值选择是否补位

    tag = 0;

    }

    else if (tag == 0) {

    K[len] = temp;

    len += 1;

    }

    }

    }

    //------------------加密---------------

    //区分大小写,其余字符直接复制

    void encrypt(char key[],char platext[], char ciptext[])

    {

    int pla_len = strlen(platext);

    for (int i = 0; i

    {

    if (platext[i] >= 65 && platext[i] <= 90) //处理大写

    {

    ciptext[i] = key[platext[i] - 65];//根据原文在替换序列中的位置,输出对应位置的密文到密文字符串

    }

    else if (platext[i] >= 97 && platext[i] <= 122)//处理小写

    {

    ciptext[i] = key[platext[i] - 97] - 32;

    }

    else

    ciptext[i] = platext[i];

    }

    }

    //-----------------解密----------------

    //区分大小写,其余字符直接复制

    void decrypt(char key[], char ciptext[], char platext[])

    {

    int cip_len = strlen(ciptext);

    for (int i = 0; i

    {

    if (ciptext[i] >= 65 && ciptext[i] <= 90)//处理大写

    {

    for (int j = 0; j < 26; j++)//根据密文确定对应密钥字符在序列中的位置,输出对应位置的原文

    {

    if (ciptext[i] + 32 == key[j])

    platext[i] = 'a' + j;

    }

    }

    else if (ciptext[i] >= 97 && ciptext[i] <= 122)//处理小写

    {

    for (int j = 0; j < 26; j++)

    {

    if (ciptext[i] == key[j])

    platext[i] = 'a' + j-32;

    }

    }

    else

    platext[i] = ciptext[i];//其余位直接复制

    }

    }

    展开全文
  • 满意答案#include "stdio.h"#include "conio.h"main(){ int i,j,k;char a[]="abcdefghigklmnopqrstuvwxyz" ;char str[100];char c[126];char b[126];printf("shurukey:\n");gets(str);strcat(str,(const char *)a);...
  • 单表置换密码的C代码实现//单置换密码的编程实现(C++)//作者信息:////本程序使用方法:需要在本程序所在的文件夹创建一个"密码学.txt"文档,//该程序所需要的数据全部由该文档提供,然后运行即可得到结果,如需要...
  • exint丿ace豪灬回答数:125|被采纳数:1052017-02-21 02:42:47恢复的密钥AlBnCeDdEgFfGcHbIhJiMoNaOzPrQmRsStTvVwXpYyZu-------------------------------------------------------------------恢复的明文the central...
  • 单表密码在凯撒密码之上做了改进(对密钥进行置换),原理较为简单。 plaintext = input('明文:') key = input('密钥:') plaintext = plaintext.replace(" ", "") plaintexts = [] keys = [] for p in plain...
  • 表代换密码跟单表代换密码的区别,主要是,多代换的代换有多个。对于加密,交替使用不同的代换。注意,加密和解密要同步,也就是,加密和解密所用的代换顺序要一致,不然,解密会出错。 多代换跟单...
  • C++实现置换密码

    2021-03-16 02:06:28
    单表置换密码的C++代码实现,供大家参考,具体内容如下本程序使用方法:需要在本程序所在的文件夹创建一个"密码学.txt"文档。该程序所需要的数据全部由该文档提供,然后运行即可得到结果,如需要修改数据,必须从...
  • 单表代换:编程实现凯撒密码,输入任意一段明文,对其加密并输出密文 多表代换:编程实现Hill加密算法,输入一段无空格的五个小写字母明文,对其加密并输出密文 撰写实验报告 实验内容 单表代换: 凯撒密码密钥为3...
  • 密码学】多表代换

    2021-09-07 18:15:48
    解析都在代码里 /* 本版本支持 ASCII码 */ #include <iostream> #include <string> #define N 4 // 定义分组数 using namespace std;...string multiplication(char* str,int a[N][N]);...
  • 1古典密码 (1)置换密码 明文字母重新排列,字母本身不变,但是位置发生变化(倒序或者按照按照数组排列后以行或列重新组合) (2)代替密码 分为单表代替密码和多表代替密码 单表代替密码中代表性的 ...
  • 1.单表密码(仿射加密) 仿射加密变化是:y=ax+b 算法: 仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母。 A B C D E F G H I J K L M N O ...
  • 置换密码/huanweim 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了...
  • 密码体制等密码学基本概念

    千次阅读 2021-12-11 17:53:55
    密码体制等密码学基本概念 保密通信系统 保密通信系统模型: 包括明文空间(M,信源)、密文空间©、加密秘钥(K1)、解密秘钥(K2)、...密码体制可以分为钥体制和双钥体制。 钥体制: 加解密秘钥相同。钥体制又可
  • 仿射密码

    2021-04-21 22:43:39
    通过编程实现代换密码算法——仿射密码和简单置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 实验内容: 根据仿射密码的实现原理,实现利用仿射密码进行加密和解密的程序。 (1)设计加密程序:...
  • 一、实验目的 实现对1-1字母代换密码的密码分析 二、实验内容 密文信息: ...
  • 本文附有丰富的代码,故文章冗长,请对照目录查阅,各大...代换:将明文中的字符替代成其他字符(仿射变换、多表代换)。 在线性空间的变化中,古典加密就是移动并拉伸物体,让物体变得与原来不一样;解密解释将物...
  • 多字符代换密码

    2021-07-28 19:33:48
    所谓多字符代换密码,其实是单表代换的一个简单改进,也就是把原来的代换表,由单个字符到单个字符的映射,变成了多个字符到多个字符的映射。比如,原来在单表代换中,明文字符a用b代换,字符b用d代换,故ab,加密成...
  • 仿射变换是基于凯撒密码(替换)和移位变换,需要两个密钥,一个为相乘a,一个为移位b。 加密算法:c=a*m+ b(mod n) 加密过程: 1.获取a,b(密钥),n(字符个数),mod n是为了保证得到数字唯一(互素)。 2.获取...
  • 移位密码体制 通俗的来讲,移位密码体制就是通过一个线性变换,即一次方程,是使得在该变换下,明文和密文是一一对应的。下面给出具体的移位的密码体制。 令P=C=K=Z26​(这里的P表示明文空间,C代表密文空间,K代表...
  • 1,移位密码 先读取输入 K,表示移位密码的参数。然后读取输入的一个只含小写字母的字符串。要求你输出该字符串经过 K 位加密之后的加密串,其中串的长度在 100 以内,0<=K<=25 #include<bits/stdc++.h>...
  • 相关题目与解析恺撒密码是一种置换密码,改进后的恺撒密码采用单字母替换方法,若密钥如下:明文:abcdefgh对Caesar加密法的改进算法是单表置换加密法,若密钥如下图所示,则明文hell0加密之后的形(48)对Caesar加密...
  • 替代的实现 原理 package MiMaXue; import java.util.Scanner; public class DuoBiaoTiHuan1{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); System.out.print("请输入...
  • 古典密码密码学中的其中一个类型,其大部分加密方式都是利用【替换式密码】或【移项式密码】,有时则是两者的混合。 其于历史中经常使用,但现代已经很少使用,大部分的已经不再使用了。 一般而言,经典密码是基于...
  • polyalphabetic-substitution-cipherPolyalphabetic Substitution Cipher:基于仿射变换的多表代换密码的C语言实现多代换编程实现原理编程语言C编程环境Ubuntu 18.04编译器gcc源代码文件说明polyalphabetic_...
  • 2.2 代换密码:FSHFPMGHTFVMAZPPZYUBMMGZSOVINFUM KCZMZSOMGZVNFFWKIVAHYZAZSOGFKTUY GTIMGHTIMZYIBNIYWOCFUSAMFZSYBUAHYCDLMFOCILGDZVINCFIAVUNQHYMISAZM CHRUZCHVWSFKBHAOHFPVHEHCIBICHIVF ...
  • MySQL数据库单表查询

    2021-02-02 09:39:36
    相关推荐: $选择器--是如何将DOM封装成jquery对象 原生js组件化开发简单轮播图实例代码 css3动画导航栏3D 以上就是MySQL数据库单表查询的详细内容,更多请关注Gxl网其它相关文章! 本条技术文章来源于互联网,如果...
  • 后按ctrl+x进入用户模式,可看到加载完成后当前用户即为root; 或在rw single后添加 quiet splash rw init=/bin/sh,其中 quiet:内核启动时,简化提示信息 splash:加载的时候启动进度条提示,代替init的字符 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,811
精华内容 58,324
关键字:

单表代替密码