G. 终章 · lqq说了什么

题目类型:答案提交 评测方式:Special Judge

题目描述

生日party之后,想到再开学很多同学就有自己新的导导了,lqq十分伤心。最后他送给了大家了一句临别寄语。可是,这条消息在半路上被mww截胡了,她把加密程序的代码和加密之后的结果告诉了你:

void encrypt(int length, const char *key, const char *source, char *target) {
	int offset = 0;
	for (int i = 0; i < length; i++) {
		offset = (offset + key[i] - 'A') % 260;
		if (isupper(source[i]) != 0) {
			target[i] = ((int)(source[i] - 'A') + offset) % 26 + 'A';
		} else if (islower(source[i]) != 0) {
			target[i] = ((int)(source[i] - 'a') + offset) % 26 + 'a';
		} else if (isdigit(source[i]) != 0) {
			target[i] = ((int)(source[i] - '0') + offset) % 10 + '0';
		} else {
			target[i] = source[i];
		}
	}
	target[length] = '\0';
	return;
}

加密的结果是:BY5NS658p6a816:35:59有修改

相信聪明的你一定可以破译出lqq的临别寄语。

ps. 欢迎加入网络空间安全学院

数据范围与提示

Hint 1. strlen(key)>=strlen(source)

Hint 2. 序章里或许有些好康的

通告标题

通告内容

已知晓