标签: vigenere

我在哪里可以找到Vigenere密码的Java源代码?

在我的应用程序中,我想实现一些加密.因此我需要Vigenere密码的代码.有谁知道我在哪里可以找到Java的源代码?

java encryption android vigenere

6
推荐指数
2
解决办法
2万
查看次数

对Java中的Vigenère密码实现感到困惑

请有人解释下面突出显示的代码行.我根本不明白这条线是如何工作的.

您可以使用此示例来帮助我:

input:   ATTACK  
keyword: LEMON  
res:     LXFOPV

我不明白,行如何帮助编码A,以L和其他信... ACSII参与?

static String encrypt(String text, final String key) {
    String res = "";
    text = text.toUpperCase();
    for (int i = 0, j = 0; i < text.length(); i++) {
        char c = text.charAt(i);
        if (c < 'A' || c > 'Z') continue;
 ////////////////////////////////////////////////////////////////////////////
//please someone explain this line
        res += (char)((c + key.charAt(j) - 2 * 'A') % 26 + 'A'); 
////////////////////////////////////////////////////////////////////////

        j = ++j % key.length(); …
Run Code Online (Sandbox Code Playgroud)

java encryption vigenere

5
推荐指数
1
解决办法
690
查看次数

Python 中的 Vigenère 密码函数

看完这篇关于 Vigenere Cipher 的教程后,我(希望)理解了它的基本概念。我们想为字符串分配一个键,然后将字符串中的每个字母移动键中每个字母的(从 0 开始的)字母位置值。所以当以培根为重点时,

Meet me in the park at eleven am
baco nb ac onb acon ba conbac on
Run Code Online (Sandbox Code Playgroud)

变成

Negh zf av huf pcfx bt gzrwep oz
Run Code Online (Sandbox Code Playgroud)

当我从头开始编写 Vigenere Cipher 时,我只知道第一步是将密钥分配给字符串。当我这样做时,我想识别每个字符是否是 alpha 以便我可以保留字符串中的任何特殊字符(!、@、# 等)(如果有的话)。

text = input("Enter some text:")

def encrypt(text):

#key = bacon
encrypted = []
baconvalue = {'A':0, 'a':0, 'B':1, 'b':1, 'C':2, 'c':2, 'D':3, 'd':3, 'E':4, 'e':4, 'F':5, 'f':5, 'G':6, 'g':6, 'H':7, 'h':7, 'I':8, 'i':8, 'J':9, 'j':9, 'K':10, 'k':10, 'L':11, …
Run Code Online (Sandbox Code Playgroud)

python encryption function python-3.x vigenere

5
推荐指数
1
解决办法
1万
查看次数

Java 中所有 UTF-8 字符的维吉尼亚密码

我有一个简单的函数,用于通过 Java 中的 Vigen\xc3\xa8re 加密字符串。我省略了解密,因为这只是计算新值的行中的“-”而不是“+”。

\n\n

但此功能仅适用于普通字母AZ。如何更改该函数以使其支持小写字母以及大写字母和所有其他 UTF-8 字符?

\n\n
public static String vigenere_encrypt(String plaintext, String key) {\n    String encryptedText = "";\n    for (int i = 0, j = 0; i < plaintext.length(); i++, j++) {\n        if (j == key.length()) { j = 0; } // use key again if end reached\n        encryptedText += (char) ((plaintext.charAt(i)+key.charAt(j)-130)%26 + 65);\n    }\n    return encryptedText;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

非常感谢您的帮助!

\n

java encryption cryptography vigenere

3
推荐指数
1
解决办法
1万
查看次数

解决没有key-python的vigenere代码

这是我必须弄清楚的问题:

"消息已使用类中讨论的Vigenere加密方法进行加密,其密文EQNVZ已被截获.中断代码.假设密钥长度与消息相同,消息和密钥仅由大写字母组成".

有没有办法在python中这样做?我知道有一种方法可以在python中创建密文,但有没有办法走另一条路?

python encryption vigenere

2
推荐指数
1
解决办法
5135
查看次数

只知道密钥长度才能破解Vigenere

问题

我想解码使用经典Viginere加密的消息。我知道密钥的长度正好是6个字符

消息是:

BYOIZRLAUMYXXPFLPWBZLMLQPBJMSCQOWVOIJPYPALXCWZLKXYVMKXEHLIILLYJMUGBVXBOIRUAVAEZAKBHXBDZQJLELZIKMKOWZPXBKOQALQOWKYIBKGNTCPAAKPWJHKIAPBHKBVTBULWJSOYWKAMLUOPLRQOWZLWRSLEHWABWBVXOLSKOIOFSZLQLYKMZXOBUSPRQVZQTXELOWYHPVXQGDEBWBARBCWZXYFAWAAMISWLPREPKULQLYQKHQBISKRXLOAUOIEHVIZOBKAHGMCZZMSSSLVPPQXUVAOIEHVZLTIPWLPRQOWIMJFYEIAMSLVQKWELDWCIEPEUVVBAZIUXBZKLPHKVKPLLXKJMWPFLVBLWPDGCSHIHQLVAKOWZSMCLXWYLFTSVKWELZMYWBSXKVYIKVWUSJVJMOIQOGCNLQVXBLWPHKAOIEHVIWTBHJMKSKAZMKEVVXBOITLVLPRDOGEOIOLQMZLXKDQUKBYWLBTLUZQTLLDKPLLXKZCUKRWGVOMPDGZKWXZANALBFOMYIXNGLZEKKVCYMKNLPLXBYJQIPBLNMUMKNGDLVQOWPLEOAZEOIKOWZZMJWDMZSRSMVJSSLJMKMQZWTMXLOAAOSTWABPJRSZMYJXJWPHHIVGSLHYFLPLVXFKWMXELXQYIFUZMYMKHTQSMQFLWYIXSAHLXEHLPPWIVNMHRAWJWAIZAAWUGLBDLWSPZAJSCYLOQALAYSEUXEBKNYSJIWQUKELJKYMQPUPLKOLOBVFBOWZHHSVUIAIZFFQJEIAZQUKPOWPHHRALMYIAAGPPQPLDNHFLBLPLVYBLVVQXUUIUFBHDEHCPHUGUM
Run Code Online (Sandbox Code Playgroud)

我尝试了蛮力方法,但不幸的是,这种方法产生的组合数量极高,无法计算。

您是否知道如何从这里出发或通常如何解决此问题?


尝试

这是我到目前为止所拥有的:

public class Main {
    // instance variables - replace the example below with your own
    private String message;
    private String answer;
    private String first;

    /**
     * Constructor for objects of class Main
     */
    public Main()
    {
        // initialise instance variables
        message ="BYOIZRLAUMYXXPFLPWBZLMLQPBJMSCQOWVOIJPYPALXCWZLKXYVMKXEHLIILLYJMUGBVXBOIRUAVAEZAKBHXBDZQJLELZIKMKOWZPXBKOQALQOWKYIBKGNTCPAAKPWJHKIAPBHKBVTBULWJSOYWKAMLUOPLRQOWZLWRSLEHWABWBVXOLSKOIOFSZLQLYKMZXOBUSPRQVZQTXELOWYHPVXQGDEBWBARBCWZXYFAWAAMISWLPREPKULQLYQKHQBISKRXLOAUOIEHVIZOBKAHGMCZZMSSSLVPPQXUVAOIEHVZLTIPWLPRQOWIMJFYEIAMSLVQKWELDWCIEPEUVVBAZIUXBZKLPHKVKPLLXKJMWPFLVBLWPDGCSHIHQLVAKOWZSMCLXWYLFTSVKWELZMYWBSXKVYIKVWUSJVJMOIQOGCNLQVXBLWPHKAOIEHVIWTBHJMKSKAZMKEVVXBOITLVLPRDOGEOIOLQMZLXKDQUKBYWLBTLUZQTLLDKPLLXKZCUKRWGVOMPDGZKWXZANALBFOMYIXNGLZEKKVCYMKNLPLXBYJQIPBLNMUMKNGDLVQOWPLEOAZEOIKOWZZMJWDMZSRSMVJSSLJMKMQZWTMXLOAAOSTWABPJRSZMYJXJWPHHIVGSLHYFLPLVXFKWMXELXQYIFUZMYMKHTQSMQFLWYIXSAHLXEHLPPWIVNMHRAWJWAIZAAWUGLBDLWSPZAJSCYLOQALAYSEUXEBKNYSJIWQUKELJKYMQPUPLKOLOBVFBOWZHHSVUIAIZFFQJEIAZQUKPOWPHHRALMYIAAGPPQPLDNHFLBLPLVYBLVVQXUUIUFBHDEHCPHUGUM";


        for (int x = 0; x < message.length() / 6; x++) {
            int index = x * 6;
            first = new StringBuilder()
                .append(first) …
Run Code Online (Sandbox Code Playgroud)

java cryptography decode vigenere

2
推荐指数
1
解决办法
75
查看次数

初级水平.用C编码.遇到"if else"的问题.

有人可以请帮助.我是编程和执行cs50课程的新手.任务是根据代码字加扰纯文本.语言是C和Linux.

我似乎已经完成了所有工作,但我在最近2个小时试图修复编译程序时的最后一个错误.我遇到的问题是程序的下半部分(在//密码功能位之后)

这是错误:

viginere.c:39:5: error: expected expression
else 
^
viginere.c:44:5: error: expected expression
else
^
2 errors generated.
Run Code Online (Sandbox Code Playgroud)

我看不出我做错了什么.

我已经在几个不同的地方弄乱了{},但我不认为这是问题,因为这个程序是我之前制作的程序的修改版本,并且一个工作,具有相同的布局(只是略有不同的printf我错过了什么?

继承我的代码:

int main (int argc, string argv[])  
{
//change command line string to a number
int k = atoi(argv[1]);
string v = argv[1];

//check program command line was typed correctly
if (argc != 2 || k != 0)
    { 
    printf("Restart program with keyword in command line (alphabetical characters only)\n");
    return 1;
    }

//Get Plain Text
printf("The keyword is …
Run Code Online (Sandbox Code Playgroud)

c if-statement vigenere cs50

1
推荐指数
1
解决办法
88
查看次数

C:分段错误

我正在使用vigenère算法实现.

不幸的是,在测试程序时,我遇到了分段错误.我在mac上用clang编译.

我怎么能避免这个错误?

源代码:

#include <ctype.h>
#include <stdio.h>
#include <string.h>

/**
 * Function: invalidUsage 
 * --------------------
 * Shows usage information and returns 1
 */
int
invalidUsage();

/**
 * Function: cryptCaesar 
 * --------------------
 * Returns encrypted char using caesar cipher
 */
char
cryptCaesar(const char plain, const int key);

/**
 * Function: parseAlphaKey 
 * --------------------
 * Converts an alpha string to a usable key (array of char from 0 to 25) 
 *   Returns true if conversion successful, false if not
 */
bool …
Run Code Online (Sandbox Code Playgroud)

c image-segmentation vigenere memory-segmentation

0
推荐指数
1
解决办法
136
查看次数

Vigenere Cipher c#with"ñ"

我正在c#中制作一个Vigenere密码程序,但是我遇到了一个问题,我没有"Ñ"我想要像Vigenere密码那样加密但是用"Ñ"如何添加字母"Ñ "这个代码?这样,密钥和s都保持这种方式:a = 0 b = 1 ... n =13ñ= 14 ... z = 26之后的地方飞行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
    static void VigenereEncrypt(ref StringBuilder s, string key)
    {
        for (int i = 0; i < s.Length; i++) s[i] = Char.ToUpper(s[i]);
        key = key.ToUpper();
        int j = 0;
        for (int i = 0; i < s.Length; i++)
        {
            if (Char.IsLetter(s[i]))
            {
                s[i] = (char)(s[i] + key[j] - 'A');
                if (s[i] > 'Z') …
Run Code Online (Sandbox Code Playgroud)

c# vigenere

-3
推荐指数
1
解决办法
4754
查看次数