加密算法程序

硬件加密算法HITAG2流程分析 一、钥匙内含应答器(TP),由BCM控制防盗器控制基站(BS)。 1、TP有自身的独一无二的标识码keyID(32bit),在登录钥匙的时候会被记录到BCM中。 2、密钥码Secret key,SK(48bit)由防盗模块随机产生(BCM中是日产设定的定数),在登录钥匙的时候,会被记录TP中。 二 设置为Cipher Mode,TP和BCM相互验证过 阅读详情

题目描述

一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:
1.首先按行填入密钥串。
2.紧接其后,按字母序按行填入不在密钥串中的字母。
3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。
如果密钥为youandme,则该方阵如下:
youan
dmebc
fghij
klpqr
stvwx
在加密一对字母时,如am,在方阵中找到以这两个字母为顶点的矩形:
oua
meb

这对字母的加密字母为该矩形的另一对顶点,如本例中为ob。
请设计程序,使用上述方法对输入串进行加密,并输出加密后的串。
另外有如下规定:
1、一对一对取字母,如果最后只剩下一个字母,则不变换,直接放入加密串中;
2、如果一对字母中的两个字母相同,则不变换,直接放入加密串中;
3、如果一对字母中有一个字母不在正方形中,则不变换,直接放入加密串中;
4、如果字母对出现在方阵中的同一行或同一列,如df或hi,则只需简单对调这两个字母,即变换为fd或ih;
5、如果在正方形中能够找到以字母对为顶点的矩形,假如字母对为am,则该矩形的另一对顶点字母中,与a同行的字母应在前面,在上例中应是ob;同样若待变换的字母对为ta,则变换后的字母对应为wo;
6、本程序中输入串均为小写字母,并不含标点、空格或其它字符。
解密方法与加密相同,即对加密后的字符串再加密,将得到原始串。

 

输入描述

从控制台输入两行字符串,第一行为密钥单词(长度小于等于25,字母不重复,且都为小写字母),第二行为待加密字符串(长度小于等于50),两行字符串末尾都有一个回车换行符,并且两行字符串均为小写字母,不含其它字符。

 

输出描述

在标准输出上输出加密后的字符串。

 

#include<iostream>
#include<string>
using namespace std;
#define M 100
char tx,ty;
char b[M][M];
string result;
string c="abcdefghijklmnopqrstuvwxyz";
void fun(string p);
void showpair(string a,int n);
void check(char A,char B);
class tem
{
	public:
	int x,y;
	tem(int a,int b){
		x=a;
		y=b;
	}
};
void main()
{
	string a,p;
	cout<<"please input a"<<endl; 
	cin>>a;
	cout<<"please input p"<<endl;
	cin>>p;
	showpair(a,a.length());
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			cout<<b[i][j]<<" ";
		}
		cout<<endl;
	}
	fun(p);
	cout<<"length="<<result.length()<<endl;
	result.resize(17);
	cout<<"The result:"<<result;
}

void showpair(string a,int n)
{
	int flag[M]={0};
	int k=0,h=0;
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			if(k<n)
			{
				b[i][j]=a[k];
				flag[a[k]-97]=1;
				k++;
			}
			else
			{
				while(flag[c[h]-97])
				h++;
				b[i][j]=c[h++];
			}
		}
	} 
}

void fun(string p)
{
	int m=p.length();
	if(m%2)
		m--;
	for(int i=0;i<m;i=i+2)
	{
	   check(p[i],p[i+1]);
	   result.insert(result.end(),tx);
	   result.insert(result.end(),ty);
	}
	if(m!=p.length())
		result.insert(result.end(),p[m]);
}
void check(char A,char B)
{
	tem t1(-1,-1),t2(-1,-1);
	if(A==B)
	{
		tx=A;
		ty=B;
		return;
	}
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			if(A==b[i][j])
			{
				t1.x=i;
				t1.y=j;
			}
			if(B==b[i][j])
			{
				t2.x=i;
				t2.y=j;
			}
		}
	}
	if(t1.x<0||t2.x<0)
	{
		tx=A;
		ty=B;
	}
	else if(t1.x==t2.x||t1.y==t2.y)
	{
		tx=B;
		ty=A;
	}
	else
	{
		tx=b[t1.x][t2.y];
		ty=b[t2.x][t1.y];
	}
}


U3D中的常用字符串加密算法程序 此处共有三段加密算法程序,分别是OBFS、SHA512和MD5,参考姜雪伟的《Unity3D 实战核心技术详解》一书中的代码,此处和大家分享。 //OBFS加密算法 private static string OBFS(string str) { int length = str.Length; var arrayNow = new ch... 阅读详情

相关推荐

某商超小程序加密算法解析

三目运算表达式,为true时貌似表示是BETA版本运行,那么正常使用的版本应该是false,所以猜测t="@653yx#*^&HrTy99",是一个固定盐值。/data/data/com.tencent.mm/MicroMsg/"$用户MD5"/appbrand/pkg/_*_xxx.wxapkg。下载地址:https://m-k73-com.sm-tc.cn/c/m.k73.com/mipw/574951.html。混淆代码阅读性差,且代码量也繁杂,实现加密翻译或许有点吃力;

2503_90751789的博客 1137

一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中 其他字母一起填入至一个5x5的方阵中

加密 题目内容: 一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中 其他字母一起填入至一个5x5的方阵中,填入方法如下: 1.首先按行填入密钥串。 2.紧接其后,按字母序按行填入不在密钥串中的字母。 3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。 如果密钥为youandme,则该方阵如下: y o u a n...

Light 2235

小红书小程序x-sign加密算法解析

小红书x-sign加密算法解析

jerry3747的博客 3515

Hitag2加密方案简述

Hitag2加密方案的系统架构Hitag2加密算法包括Hitag2的LFSR(线性反馈移位寄存器)的state的初始化、keystream的生成。示意如下图。 若密钥为0x524B494D4E4F,应答器id为0x69574349,随机数为0x72456E65,则Hitag2加密算法输出的前16 bytes keystream如图所示: 防盗器和应答器认证成功后,二者会达到相同的Hitag2 L

乱七八糟の中转站 6348

mfc编就的MD5加密算法程序

编完了计算器的,觉得

风华绝代 3017

一个简单的MD5加密算法C语言示例程序

#include     #include   #include     #include     typedef   unsigned   char   *POINTER;   typedef   unsigned   short   int   UINT2;   typedef   unsigned   long   int   UINT4;   typedef

qinggebuyao的专栏 1万+

字母加密对照表(15分)

题目内容: 先定义一张字母加密对照表。将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以很简单地将输入的文字加密输出,对于表中未出现的字符则不加密。字母加密对照表输入 a b c d e i k ; w输出 d w k ; i a b c e输入格式: 字母输出格式: 字母输入样例1:abc[回车]输出样例1:dwk[回车]输入样例2:de[回车]输出样例2:;i[回车]时间限制:500ms内存限制:32000kb...

weixin_61972874的博客 2622

在MFC应用程序中实现MD5加密算法

MD5,即Message-Digest Algorithm 5,是一种广泛使用的加密散列函数,能够将任何长度的数据转换成固定长度(128位)的“指纹”或“摘要”。MD5最初由Ronald Rivest在1991年设计,作为MD4的改进版,具有更高的安全性。其基本原理是通过一系列的逻辑函数和位运算,对输入数据进行处理,最终产生一个独特的字符串。这个过程是不可逆的,即使两个不同的数据集生成了相同的MD5摘要,这种情况在理论上是可能的,但在实践中发生的几率极低,被称作“碰撞”。

weixin_29781865的博客 1037

盘点程序员最常用的五种加密算法

大家平时的工作中,可能也在很多地方用到了加密、解密,比如: 用户的密码不能明文存储,要存储加密后的密文 用户的银行卡号、身份证号之类的敏感数据,需要加密传输 还有一些重要接口,比如支付,客户端要对请求生成一个签名,服务端要对签名进行验证

weixin_50205273的博客 2077

【逆向】使用 Frida 进行 Android 应用程序动态分析与加密算法逆向

Frida 是一个功能强大的动态分析工具,可以用于跟踪、修改和分析 Android 和 iOS 应用程序。它提供了一套强大的 API,允许用户使用 JavaScript、Python 或其他语言编写脚本,与目标应用程序进行交互。

哈哈哈哈哈哈哈 1479

10xGenomics官方可视化工具——Loupe Browser

Loupe Browser是⼀款10xGenomics开发的交互式桌⾯应⽤程序,⽤于探索10x单细胞数据,可以用来找出感兴趣的细胞、找出显著差异表达的基因、鉴定细胞类型、探索细胞亚类和数据共享。

weixin_47195452的博客 3358

C编写的加密算法程序

C#编写的加密算法程序 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供的资源是一个使用C#语言编写的加密算法程序,该程序在Visual Studio 2017社区版开发环境下开发完成。程序具备图形用户界面,用户可以通过界面进行操作,实现加密功能。 该程序经过测试,可以正常运行。如果您对加密算法感兴趣,并希望了解其背后的实现原理,可以参考以下优快云博客文章,了解更多详...

gitblog_06714的博客 347

TMC5160电机驱动芯片实战:从模式选择到参数配置全解析

本文深入解析TMC5160电机驱动芯片的实战应用,涵盖三种核心工作模式的选择策略与参数配置。详细介绍了全功能运动控制、外部脉冲驱动及独立驱动模式的应用场景与配置要点,并提供了电流控制、静音优化、SPI通信及高级功能(如StallGuard2)的调优指南,帮助开发者充分发挥其高精度、低噪音性能。

weixin_29179311的博客 323

RSA加密算法—VB程序代码

RSA加密算法—VB程序代码 去发现同类优质开源项目:https://gitcode.com/ 此仓库包含了一个RSA加密算法的VB程序代码,适用于学习和研究加密技术。RSA加密算法是一种非对称加密算法,它使用一对密钥,即公钥和私钥,来实现信息的加密和解密。 资源描述 本资源中的VB代码实现了RSA加密算法的核心功能,主要包括: 两个大素数的生成与选取 求解公钥和私钥 加密与解密过程的实现 包含...

gitblog_06767的博客 391

Laravel 结合 jwt-auth 实现无状态 API 认证(实战解析)

本文详细解析了如何在Laravel框架中结合jwt-auth实现无状态API认证,包括JWT的优势、环境搭建、Token签发与刷新、API路由保护等实战内容。通过具体代码示例和优化技巧,帮助开发者高效解决跨域认证问题,提升系统安全性。

weixin_29315569的博客 211

基于AXI PCIE IP的FPGA PCIE卡示意图

如果在上图中的AXI互联IP上再连接一个带AXI Slave接口的BRAM控制器,这个BRAM控制器连接一个BRAM,Host PC在系统主存中分配了一些不连续的内存,Host PC可以将这些内存段的起始地址(当然要先转为PCIE总线地址)写到AXI总线上的BRAM中,这样AXI CDMA读取BRAM,将读取到的PCIE总线基地址写到AXIPCIE寄存器块中的AXIBAR2PCIEBAR_n寄存器中,这样就实现了SG DMA。通过动态改变AXIBAR2PCIEBAR_n寄存器的值,可以实现多通道DMA。

csdn_gddf102384398的博客 1624

php小程序 sha1算法,微信小程序填坑之路之加密算法

昨夜群里争了一波加密算法,于是今日就来一波加密因为目前还不涉及到后台,所以就不讨论java,php等的加密方式,就说JS的加密方式(方式大同小异)经过网上一顿搜索,收集到了4个加密算法(md5,sha1,aes,base64)的脚本,也是自己都用过的,经过一点修改,将其利用在小程序上,供大家参考加密算法分为两种:一种是对称加密算法(aes可逆),一种是非对称加密算法(没研究,自己搜,哈哈)而(md...

weixin_39655085的博客 297

Windows版MySQL8.4.2LTS解压直用(下载免安装-绿色-项目打包直接使用-含卸载)

安装前运行微软常用运行库全集(也可能称为依赖)关于MySQL8中相关参数配置,可通过。选择8.5.2LTS长期服务版。选中密码,右键会直接复制。

xzzteach的博客 1440

des加密算法c语言源程序,des加密算法c语言源代码

c语言写的des加密算法程序,控制台,直接输入明文密钥,得出密文,再由密文密钥得到明文,可直接运行。void Char_to_Int(unsigned char in[],int out[],int len){for(int i=0;iout[i]=int(in[i]);}void Int_to_Char(int in[],unsigned char out[],int len){for(int ...

weixin_42509569的博客 835

【C#程序员入门AI】向量数据库入门:C#集成Chroma/Pinecone,实现AI知识库检索(RAG基础)

向量存语义,检索补知识!向量数据库:解决AI知识库存储和语义检索问题,让AI有据可查C#集成:Chroma轻量本地练手,Pinecone企业云端落地,一套逻辑无缝切换RAG闭环:检索+大模型,让AI回答精准不瞎编,是AI落地的必经之路咱C#程序员有.NET生态加持,集成向量数据库比Python更简洁、更稳定,不管是个人做智能助手,还是企业做知识库,这套技术栈都能直接落地,2026年必学技能!

人工智能AI技术 1003

Python与CAD系列基础篇(十)图形复制、移动、删除

①通过pyautocad连接AutoCAD进行处理②通过ezdxf处理dxf格式文件。进行图形复制、移动、删除的方法。pyautocad方式。pyautocad方式。

weixin_43894929的博客 2210

基于二维码快递信息加密小程序(RSA加密算法)

🎈系统亮点:RSA加密算法;

paopaokaka_luck的博客 1181

GJB 5000B二级-II实施基础

本文主要描述GJB 5000B二级II实施基础与GJB 5000A的变化情况,以及过程域各条款的实施要点

Abel的博客 2581

QQ程序的加密算法-C#版

Luma写的 我翻译的 using System;using System.Collections.Generic;using System.Text;using System.Net; namespace Nutqq{ public class Crypter { // 指向当前的明文块 private byte[] plain;...

weixin_30481087的博客 266

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MD5和一个可逆加密算法相接合的加密和解密程序

MD5和一个可逆加密算法相接合的加密和解密程序 比较简单。 [code={0}] import java.security.MessageDigest; /** *先通过MD5加密之后,再来一次可逆的加密。 *顺序可以调整,可以选择先用可逆加密,然后再用MD5加密 */ public class MD5andKL{ //MD5加码。32位 public st

冷月宫主的专栏 1238

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 回溯法求解0-1背包问题
下一篇: 提高SQL查询的效率
EmanuelBlog
博客等级 码龄15年 19粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值