几天前一次和朋友聊天谈到了加密聊天,于是想到了凯撒密码,随之就是想用自己的一点烂技术写点好玩的:
下面是成品说明
本程序可以将用户输入的内容通过 非固定的凯撒密码字典 进行加/解密,是一种好用加密的加密聊天方式。
Caesar cipher,发明者Caesar(凯撒),罗马人。
根据苏维托尼乌斯的记载,恺撒曾用此方法对重要的军事信息进行加密:
如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推。
同样,奥古斯都也使用过类似方式,只不过他是把字母向右移动一位,而且末尾不折回。每当他用密语写作时,他都用B代表A,C代表B,其余的字母也依同样的规则;他用A代表Z。
另外,有证据表明,恺撒曾经使用过更为复杂的密码系统:文法学家普罗布斯曾经写过一份独具创新的手稿,研究恺撒书信中包含有秘密信息的字母。
已经无法弄清恺撒密码在当时有多大的效果,但是有理由相信它是安全的。因为恺撒大部分敌人都是目不识丁的,而其余的则可能将这些消息当作是某个未知的外语。即使有某个敌人获取了恺撒的加密信息,根据现有的记载,当时也没有任何技术能够解决这一最基本、最简单的替换密码。现存最早的破解方法记载在公元9世纪阿拉伯的阿尔·肯迪的有关发现频率分析的著作中。
这是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的,当年凯撒曾用此方法与其将军们进行联系。
进入程序后,会有像下面这样的提示:
随便输入一段英文(此程序仅支持英文和数字,原因看原理):例如 Fuck you
然后回车:
我们在这输入的是可看的原文,所以我们要加密,输入1,回车:
我们以位移+3(这是当年的默认值,输入其他值可以为负,但是必须加负号,正数的正号加不加无所谓)为例,输入并回车:
程序里面用了循环,所以输出完后会自动进行下一次,这适合正在加密聊天的折腾者。
同样,我们把加密好的文本复制完后重新输入,选择2进行反加密(解密),位移了多少仍然填3:
这样解密就成功了,是不是真的很适合爱折腾的你?赶紧发给你的朋友,约定一个固定的位移数(加密密钥)进行愉快的无限制聊天吧!
存放主程序及图标文件
英文版主程序(在en-ww文件夹内)
程序图标,透明底的
中文版主程序
日志文件,主要通过自编模块 keeplog 生成,内容为“日期(Y/M/D)+时间(h/m/s)+加密密钥+输入/输出内容+分割线”
最近的项目工作中使用到了比较多的证书,私钥转换命令。用来满足不同场景下对不同格式密钥的需求。现在整理一下,供以后项目参考
p7b 是#PKCS7证书的格式,特点是有一个完整的证书链,从根证书到应用层证书。一般的大厂会有自己的PKI系统,PKI发布出来的证书通常都是这个 p7b 格式的。 p7b 格式不够直观,Java的keytool也不支持对其导入,因此我们将它转换成常见的 cer / pem 格式
目录下会生成一份 cer / pem 格式的证书文件。打开就是一份份切分好的证书合集,从根证书到应用层证书,一目了然。在Windows环境下,cer格式证书可以直接导入到系统证书管理器中。方便的成为系统信任的根证书。
这是一种个人信息交换(#PKCS12)格式,后缀名也可以是p12,是一种包含私钥和证书的合体文件,并且通常有密码进行保护,可以直接导入到操作系统中。
提取私钥:
提取证书:
搞Java开发免不了使用JDK自己的密钥管理标准。Java自带的keytool工具是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。
在Java中,有Keystore来存储个人信息交换(Keystore / #PKCS12),信任库(Truststore)。尤其是在TLS,签名,加密的场景下,对自签名的证书都需要添加到JDK的信任库中。
JDK/JRE默认的Truststore存放位置为:
以我们从PKI发布给我们的p7b证书为例,我们在转换成cer格式之后,执行如下的命令,就能导入到JDK信任链中,命令会让你输入cacerts信任库密码,默认为 changeit
添加完之后可以查看存在的信任库
也可以导出信任库所有信任链信息到文本文件
如果是要删除一个信任链,那么执行以下命令
52 101 98 48 101 98 97 50 50 100 56 101 98 102 97 53 57 50 55 101 98 53 98 102 57 48 56 57 99 56 48 98 100 57 51 50 51 100 50 55 57 52 97 53 52 56 49 55 56 100 52 98 102 53 48 48 98 99 100 99 101 50 97 99 13 10
不知道对不对。工具我有。留个邮箱吧
code unsigned char HEX_table[]=
{
''f637e543bd841a556920429311a0a8de9426b4b931cdb6656ce1968c1dbfc896''
};
这样就是ASCII了.
破解这个密码只能一个一个是,等你是出来了估计几百年都过去了。
u盾k宝是两个东西
u盾是中国工商银行2003年推出的,是专门用来保护网银客户安全的“智能卫士”,是网民在办理网上银行业务的高级别安全工具,因为他的外形很像u盘,而且对网银账户起到一个保护盾牌的作用,所以称之为u盾。 u盾是内置微型智能卡处理器,采用1024位非对称密钥算法对网上数据进行加密、解密和数字签名,确保网上交易的保密性、真实性、完整性和不可否认性。
K宝,学名USB KEY,俗称K宝,是一种专门用来存储网银证书的存储介质,采用特殊的加密算法。. 将证书存放在K宝中,安全又方便。
k宝类似于一个电子密钥,输入验证码就可以
U盾不一样,U盾是需要转换器的,因为它的接口是普通耳机插孔,苹果手机已经取消了耳机插孔所以就需要转换器。