Questions tagged «encryption»

这一挑战与通常使用一个或多个键的明文编码有关或有关。

8
上升还是下降?
给定山羊的图像,您的程序应该最好尝试识别山羊是否倒置。 例子 这些是输入可能是什么的示例。不是实际的投入 输入: 输出: Downgoat 规格 您的程序最多应为30,000个字节 输入将包含完整的山羊 图片将始终包含山羊 如果山羊倒立,输出Downgoat,否则Upgoat 输入将是您可以将图像作为输入(文件名,图像的base64等)。 要点文件名仅供参考,不要依赖于包含“ Upgoat”或“ Downgoat”的图像名称或其他元数据。 请不要硬编码。这很无聊,我无法完全执行它,但是我可以很好地询问。 测试用例 要点与图像。开头的图像downgoat具有Downgoat输出和图像开始与upgoat有Upgoat输出。 第二批测试用例 确保在所有测试用例上测试图像。这些图像是jpgs。图像大小确实有所不同,但没有说太多。 注意:在接受答案之前,可以添加一些测试用例,以避免使用硬编码的答案并检查程序的总体性能。 正确获得我的头像的奖励积分:P 计分 分数是可以通过以下方式计算的百分比: (number_correct / total) * 100

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

16
解密异或加密
您的任务是将加密的字符串作为输入,并输出解密的字符串,以显示其隐藏消息。 输入和输出字符串都将包含以下64个ASCII字符列表中的字符(请注意前导空格): !"#$%&'()*+,-./0123456789:;=?@[\]^_abcdefghijklmnopqrstuvwxyz|~ 这些字符按上面列出的顺序分配了编号: ! " # $ % & ... 0 1 2 3 4 5 6 ... 因此,空格是数字0,!数字1和~数字63。这些数字可以用6位二进制代码表示: : 0: 000000 !: 1: 000001 ": 2: 000010 #: 3: 000011 .. ... ...... z: 61: 111101 |: 62: 111110 ~: 63: 111111 加密非常简单: 我将使用eC加密字符和C原始字符串的字符。C(n)是原始字符串的eC(n)第n个字符,而是加密字符串的第n个字符。 您将使用字符的6位二进制表示形式。第一个字符为eC(0) = not(C(0))。从那里开始,所有字符均为eC(n) = …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

5
密码破解者和编剧
假设您有一些文本,并且希望将其发送给您的朋友,但是您不希望其他任何人阅读。这可能意味着您想对其加密,以便只有您和您的朋友才能阅读它。但是,有一个问题:您和您的朋友忘记了加密方法的约定,因此,如果您向他们发送消息,他们将无法对其解密! 考虑了一段时间后,您决定只向您的朋友发送代码,以将消息和消息一起加密。您的朋友很聪明,因此他们很可能可以通过研究加密方法来弄清楚如何解密邮件。 当然,由于其他人可能正在阅读该消息,因此您希望选择一种加密方案,以使其尽可能难以破解(找出解密方案)。 警察的任务 在这个挑战中,警察将扮演作家的角色:您将设计一种将字符串转换为字符串的加密方案。但是,此加密方案必须是双射的,这意味着没有两个字符串必须映射到另一个字符串,并且每个字符串都可以通过输入映射到。它只需要一个输入即要编码的字符串。 然后,您将发布一些执行加密的代码,并使用您的代码详细说明的方案加密一条消息。 由于您是按字节付费发送消息,因此分数将是代码的长度加上密文的长度。如果您的答案被破解,您将获得无穷大。 一个星期后,您可以显示文字并将答案标记为“ 安全”。安全的答案是那些无法破解的答案。 强盗任务 强盗可以扮演作家的朋友,也可以扮演恶意的中间人(没有实质性的区别,但是您可以扮演角色,就像这样做更有趣)。他们将采用加密方案和密文,并尝试找出加密的消息。一旦他们找出了加密的消息,便会将其发布在评论中。(这个问题不会有单独的强盗线程。) 赢家将是裂缝最多的强盗。 这是一个破解解决方案的示例:

1
实施谜机
谜机是德国人和其他人用来加密其消息的相当复杂的密码机。实施此机器是您的工作*。 步骤1,旋转 我们的enigma机器有3个转子槽,每个槽有5个可用转子。每个转子都有26个不同的可能位置(从A到Z)。每个转子都有一个预定的缺口位置: Rotor Notch ------------ 1 Q 2 E 3 V 4 J 5 Z 按键时会发生以下步骤: 插槽1中的转子旋转 如果插槽1中的转子经过其槽口,则它将旋转插槽2中的转子。 如果插槽2中的转子在其槽口中(但不只是在那里移动),则转子2和3都会旋转一次。 如果我们使用转子1,3,5和他们中的位置P,U,H,然后位置的顺序是:P,U,H> Q,U,H> R,V,H>S,W,I 步骤2,替代 每个转子执行简单的字符替换。下图是该A位置的每个转子的图表: ABCDEFGHIJKLMNOPQRSTUVWXYZ -------------------------- 1 EKMFLGDQVZNTOWYHXUSPAIBRCJ 2 AJDKSIRUXBLHWTMCQGZNPYFVOE 3 BDFHJLCPRTXVZNYEIWGAKMUSQO 4 ESOVPZJAYQUIRHXLNFTGKDCMWB 5 VZBRGITYUPSDNHLXAWMJQOFECK R YRUHQSLDPXNGOKMIEBFZCWVJAT 转子1在位置T is处PAIBRCJEKMFLGDQVZNTOWYHXUS,它将用字母C代替I。 在三个转子进行替换后,反射器受到撞击(如上R所列)。它执行自己的替换,然后通过转子将信号反射回去。然后,转子以相反的顺序执行反向替换。 的是,代替转子1代反向替换装置A用E,它可以代替E与A 插槽中的转子1,2,3均已安装到位A。该字母Q沿Q>X>V>M通过转子的路径移动。 M反映到O,然后遵循的反向路径O>Z>S>S。因此,A用代替S。 输入输出 您通过了: 3个转子的列表(整数) 3个起始转子位置的列表(以字母表示) 需要加密的字符串。 …

10
对按字节预算的人进行简单加密
总览 您的目标是实施RC4加密。RC4加密技术是由RSA著名的Ron Rivest发明的,旨在确保安全性,但又足够简单,可以由战场上的军人从内存中实施。如今,RC4受到多种攻击,但今天仍在许多地方使用。 您的程序应接受包含键和一些数据的单个字符串。它将以这种格式显示。 \x0Dthis is a keythis is some data to encrypt 第一个字节代表密钥多长时间。可以假设密钥将不超过255个字节,并且不小于1个字节。数据可以任意长。 您的程序应处理密钥,然后返回加密的数据。RC4加密和解密是相同的,因此使用相同的密钥“加密”密文应返回原始明文。 RC4如何工作 初始化 RC4的初始化非常简单。256字节的状态数组被初始化为0到255之间的所有字节。 S = [0, 1, 2, 3, ..., 253, 254, 255] 密钥处理 状态值将根据键进行交换。 j = 0 for i from 0 to 255 j = (j + S[i] + key[i mod keylength]) mod 256 …

15
扩展真理机
许多人知道编程中的真机。但是现在是时候让我们努力了。介绍,扩展的真机!扩展的真理机器将两件事作为输入,一个整数n和一个非空字符串s。输出s n带有可选尾随空格的时间。但是,如果n等于0,则必须输出,s直到手动停止程序为止,即永远不要终止它。 另外,如果n为负数,则字符串需要颠倒。例如,使用s=helloand n=-1,输出将为olleh。 输入的标准方法,任何种类的输出,只要可以处理无限。如果您的答案不能处理无限大,请在有趣的情况下或以无法处理无限大输出的语言随意发布。 测试用例 n, s, output 5, "hello world", "hello worldhello worldhello worldhello worldhello world" 0, "PPCG", "PPCGPPCGPPCGPPCG..." -2, "truThY", "YhTurtYhTurt" 2000, "o", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" 这是代码高尔夫球,所以最短的代码获胜! 这是原始的沙盒帖子。已对其进行了编辑。感谢@ComradeSparklePony创建了这个挑战的想法

2
高尔夫端到端加密
第一次挑战时,悬赏200分,并且至少连续3天保持不败。被user3080953主张。 最近有很多关于端到端加密的讨论,并且要求公司从其产品中删除它。我对它的是非不感兴趣,但是我想知道:代码能持续多久会给一家公司施加压力,使其不使用它? 这里的挑战是在两个网络系统之间实现Diffie Hellman密钥交换,然后允许用户使用生成的对称密钥来回通信。出于此任务的目的,不需要其他保护(例如,不需要循环密钥,验证身份,防止DoS等),并且您可以假定开放的Internet(您监听的任何端口都对所有人可用)。允许并鼓励使用内建函数! 您可以选择以下两种模式之一: 服务器和客户端:客户端连接到服务器,然后服务器或客户端可以向其他服务器发送消息。两者之间的第三方必须无法读取消息。一个示例流程可能是: 用户A启动服务器 用户B启动客户端并将其定向到用户A的服​​务器(例如,通过IP /端口),程序将打开连接 用户A的程序确认连接(可以选择先征求用户的同意) 用户B的程序开始生成DH机密,并将所需的数据(公钥,素数,生成器,以及您的实现所需的其他任何内容)发送给用户A 用户A的程序使用发送的数据完成共享密钥的生成,并将所需的数据(公钥)发送回用户B。从这一点来看,用户A可以输入消息(例如,通过stdin),该消息将被加密并发送给用户B(例如到标准输出)。 用户B的程序完成了共享机密的生成。从这一点来看,用户B可以向用户A发送消息。 或:一台连接有两个客户端的服务器:每个客户端与服务器对话,服务器将其消息转发给另一个客户端。服务器本身(及其之间的任何第三方)必须无法读取消息。除了初始连接之外,该过程与第一个选项中描述的过程相同。 详细规则: 您可以提供一个程序,也可以提供多个程序(例如,服务器和客户端)。您的分数是所有程序的总代码大小。 从理论上讲,您的程序必须能够通过网络进行通信(但对于测试,可以使用localhost)。如果您选择的语言不支持联网,则可以将其与兼容的语言结合使用(例如,shell脚本)。在这种情况下,您的分数就是所有使用的所有语言的总代码大小。 Diffie Hellman密钥生成可以使用硬编码的“ p”和“ g”值。 生成的共享密钥必须至少为1024位。 共享密钥后,对称密钥加密的选择就由您决定,但是您一定不能选择目前已知对其有实际攻击能力的方法(例如,在不知道密钥的情况下,进行凯撒转移很容易进行反向操作) )。允许的算法示例: AES(任何密钥大小) RC4(从理论上讲是无效的,但是我没有提到任何实际的攻击,因此这里允许) 用户A和B必须都能够交互地互相发送消息(双向通信)(例如,从stdin中读取行,不断提示或按下按钮之类的事件)。如果这样更容易,您可以假设是交替对话(即,用户发送消息后,他们必须等待响应才能发送下一条消息) 语言内置是允许的(没有必要写你自己的密码或网络的方法,如果他们已经支持)。 底层的通信格式取决于您。 上面给出的通信步骤是一个示例,但是您不必遵循这些步骤(只要共享了必要的信息,并且没有中间人能够计算出共享密钥或消息) 如果事先不知道连接到服务器所需的详细信息(例如,如果它在随机端口上侦听),则必须打印这些详细信息。您可以假定机器的IP地址是已知的。 不需要进行错误处理(例如,无效的地址,丢失的连接等)。 挑战是代码高尔夫,因此以字节为单位的最短代码将获胜。

30
创建一个鹦鹉程序
给定输入,输出该输入,然后不断地换行。 输入将是仅由可打印的ASCII字符(0x20-0x7E)和换行符(0x0A)组成的字符串。 如果输入长度为0,则不断输出换行符。 这是代码高尔夫球,因此每种语言中最少的字节会获胜!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

19
实施此关键密码
实施此关键密码 目标 使用算法(在“算法”部分中有说明)来实现特定密码。 该程序必须从STDIN或最接近的可用等效项中读取输入,使用该算法生成密文和密钥。 密文和密钥将被写入STDOUT或最接近的等效密钥。允许任何格式,只要它输出密文和密钥即可。 算法 将字符串中的字符转换为相应的ASCII值。例如: Hello -> 72 101 108 108 111 接下来,您将需要生成一个密钥,只要该字符串的随机数在0-9范围内即可。 Hello -> 62841 将随机数序列中的整数添加到字符串的ASCII值。在上述示例中,72将变为78,而101将变为104。 72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc 接下来,将新值转换回字符。在上述示例中,文本Hello变为Ngtpp。 例子 (这些仅仅是输出什么样的例子可能看起来像,输出可以且将会变化。) Hello World Lfrlu)_supg 41606984343 This will be encoded Zhjs$~koo gj$iuhofgj 60104723305544750226 规则 …

7
让我们加密吧!
挑战 挑战在于使用以下指定的规则对给定的字符串进行加密。该字符串将仅包含小写字母,数字和/或空格。 等效字符 现在,首先,您将需要知道如何查找每个字符的“等效”字符。 如果字符是辅音,则可以通过以下方法找到它的等价物: 1) List all the consonants in alphabetical order b c d f g h j k l m n p q r s t v w x y z 2) Get the position of the consonant you are finding the equivalent of. 3) The equivalent …

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.