- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我实现了ciphersaber-1 .它几乎可以工作,我可以解密 cstest1.cs1。但我无法让 cstest2.cs1 正常工作。
输出是:
The Fourth Amendment to the Constitution of the Unite ▀Stat→s of America
"The right o☻ the people to be secure in their persons, houses, papers, and
effects, against unreasonab→e searches an╚A)┤Xx¹▼☻dcðþÈ_#0Uc.?n~J¿|,lómsó£k░7╠▄
íuVRÊ ╣├xð"↕(Gû┤.>!{³♫╚Tƒ}Àõ+»~C;ÔÙ²÷g.qÏø←1ß█yÎßsÈ÷g┐ÅJÔÞ┘Îö║AÝf╔ìêâß╗È;okn│CÚê
õ&æÄ[5&Þ½╔s╦Nå1En♂☻♫ôzÓ9»Á╝ÐÅ├ðzÝÎòeØ%W¶]¤▲´Oá╗e_Ú)╣ó0↑ï^☻P>ù♂¥¯▄‗♦£mUzMצվ~8å
ì½³░Ùã♠,H-tßJ!³*²RóÅ
所以我在初始化状态时一定有错误。奇怪的是我可以毫无问题地加密和解密长文本,所以这个错误是对称的。
我将 rc4 密码实现为可重入单字节算法,如您在 rc4.c 中所见。 .
状态存储在 rc4_state 结构中:
typedef unsigned char rc4_byte;
struct rc4_state_
{
rc4_byte i;
rc4_byte j;
rc4_byte state[256];
};
typedef struct rc4_state_ rc4_state;
状态初始化为rc4_init :
void rc4_init(rc4_state* state, rc4_byte* key, size_t keylen)
{
rc4_byte i, j, n;
i = 0;
do
{
state->state[i] = i;
i++;
}
while (i != 255);
j = 0;
i = 0;
do
{
n = i % keylen;
j += state->state[i] + key[n];
swap(&state->state[i], &state->state[j]);
i++;
}
while (i != 255);
state->i = 0;
state->j = 0;
}
真正的加密/解密是在rc4中完成的:
rc4_byte rc4(rc4_state* state, rc4_byte in)
{
rc4_byte n;
state->i++;
state->j += state->state[state->i];
swap(&state->state[state->i], &state->state[state->j]);
n = state->state[state->i] + state->state[state->j];
return in ^ state->state[n];
}
为了完整性,交换:
void swap(rc4_byte* a, rc4_byte* b)
{
rc4_byte t = *a;
*a = *b;
*b = t;
}
两天多来我一直在为这个问题苦思冥想……状态,至少“asdfg”键是正确的。任何帮助都会很好。
整个事情可以在我的github reopsitory中找到:https://github.com/rioki/ciphersaber/
最佳答案
我在网上搜索时偶然发现了你的问题,但因为你还没有更新 your code at GitHub不过,我想您可能仍然想知道问题出在哪里。
在这段代码中:
i = 0;
do
{
state->state[i] = i;
i++;
}
while (i != 255);
此循环迭代 255 次后,i
的值为 255,循环终止。结果,状态缓冲区的最后一个字节未初始化。
这很容易修复。只需将 while (i != 255);
更改为 while (i);
。
关于CipherSaber 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16603562/
所以我实现了ciphersaber-1 .它几乎可以工作,我可以解密 cstest1.cs1。但我无法让 cstest2.cs1 正常工作。 输出是: The Fourth Amendment to
更改 unsat 查询中断言的顺序后,它变为 sat。 查询结构为: definitions1 assertions1 definitions2 bad_assertions check-sat 我使
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我的应用程序用于使用 wifi 进行实时视频流和录制(音频和视频)。使用以下依赖项: repositories { maven { url 'https://raw.github.com/iParse
我正在使用 Delphi,并且我想在我的应用程序中使用 ActiveX 组件(用于压缩)。这会让我的程序更容易受到病毒攻击吗?我的程序是一个备份应用程序,它使用 FTP 和套接字来传输文件和消息。我的
我用这个函数来防止SQL注入(inject) function cleanQuery($string) { if(get_magic_quotes_gpc()) // prevents du
最近我在向我的 friend 解释参数化及其优势,他问我在安全性方面它比 mysqli_escape_string 有什么好处。具体来说,您能想到尽管输入字符串被转义(使用 mysqli_escape
我想我在最新版本的 Highstock 中发现了一个错误: 定义了以下 RangeSelector: rangeSelector: { buttons: [{ typ
我在阅读有关 C 语言字符串中的漏洞的文章后,发现了这段代码。谁能给我解释为什么会这样?提前致谢。 int main (int argc, char* argv[]) { char a[16];
我最近浏览了 php 等的 emacs 模式,并决定选择 nXhtml。但是,我不断收到以下错误:每当我打开一个 html 文件时,整个文件都以蓝色突出显示。不用说,这很烦人。我认为这可能是因为我的
我被分配到我公司的一个遗留 Web 应用程序,在研究源代码一两天后,我发现了一个类似于以下内容的 SQL 注入(inject)向量: mysql_query("SELECT * FROM foo WH
在坚持代码分析错误的过程中,我正在将我的属性更改为具有私有(private) setter 。然后我开始尝试更多地了解为什么。根据一些研究,MS 说 this : A writable collect
我最近开始使用 AngularJS,我想我遇到了一个奇怪的错误。 首先,这是一些工作代码: 查看: Delete Num
阅读时djangobook chapter ,我遇到了提到 csrf 漏洞的部分,其中注销链接被放置在隐藏的恶意站点中。 在我使用 django 创建的 Web 应用程序中,我使用了类似的注销链接 基
以前,在我的应用程序中,我得到了一个 NPE,并且通过在 NullPointerException 处设置断点,可以获得中断、堆栈跟踪(在“调试”窗口中)以及“变量”窗口中的当前变量。 但是,现在其他
我下载了 sponza_obj.rar (sponza.obj + sponza.mtl) 和 sponza_textures.rar Crytek 网站。看起来缺少gi_flag.tga。我在哪里可
在我的应用程序中,我们有许多用户,他们都与不同的调用中心相关。在 URL 中,有一个向后的 hack,他们可以在 ? 后面输入 call_center=number。它将引导他们进入不同的调用中心数据
我正在建立一个带有 SQL 注入(inject)漏洞的网站用于测试目的。但是,我只想配置 SQL 盲注。我有这个 PHP 代码: NEW
我们有一个 ASP.NET/C# 网站。我们的开发人员在亚洲离岸,我刚刚发现他们一直在网站前端放置原始 SQL。 我担心我们现在容易受到 SQL 注入(inject)攻击。有谁知道我如何检测网站上的漏
我正在尝试从代码运行 Microsoft Rdp 应用程序。 我有以下伪代码,SonarQube 提示命令注入(inject)漏洞 String rdpFilePath = myObject.getR
我是一名优秀的程序员,十分优秀!