Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Додатки.docx
Скачиваний:
7
Добавлен:
11.01.2020
Размер:
35.39 Кб
Скачать

8 Порядок контролю та прийому.

До прийому і захисту курсового проекту подається:

  • остаточний звіт (пояснювальна записка);

  • код програми;

  • спеціалізований апаратний засіб для односторонньої автентифікації користувачів з використанням вдосконаленого алгоритму Wide-mounted Frog. Схема електрична структурна.

  • програмний засіб для реалізації криптоалгоритму Wide-mounted Frog з рандомізацією чисел. Блок-схема.

Початок розробки 1.02.2019.

Крайній термін виконання курсового проекту 19.04.2019.

Розробив студент групи 1БС-16 б ____________ Тітов О.А.

Додаток б Текст програми

import java.io.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.util.Arrays;

import java.util.Base64;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import javax.swing.JOptionPane;

public class MainFrame extends javax.swing.JFrame {

private String RndNumBob() {

String RndNumBob = "";

int[] RndNumBobInt = new int [16];

for(int i=0; i<16; i++) {

RndNumBobInt[i] = (int) (Math.random()*9);

RndNumBob += Integer.toString(RndNumBobInt[i]);

}

return RndNumBob;

}

private final String AlisaTrendKey = "6a857a3055376c8c4320f9fdcce0a67b";

private final String TrendBobKey = "eb02b5d52350ea68352518648007843a";

private final String RndNumBob_ = RndNumBob();

/**

* Creates new form MainFrame

*/

public MainFrame() {

initComponents();

}

private static SecretKeySpec secretKey;

private static byte[] key;

public static void setKey(String myKey)

{

MessageDigest sha = null;

try {

key = myKey.getBytes("UTF-8");

sha = MessageDigest.getInstance("SHA-1");

key = sha.digest(key);

key = Arrays.copyOf(key, 16);

secretKey = new SecretKeySpec(key, "AES");

}

catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

public static String encrypt(String strToEncrypt, String secret)

{

try

{

setKey(secret);

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, secretKey);

return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));

}

catch (Exception e)

{

System.out.println("Error while encrypting: " + e.toString());

}

return null;

}

public static String decrypt(String strToDecrypt, String secret)

{

try

{

setKey(secret);

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");

cipher.init(Cipher.DECRYPT_MODE, secretKey);

return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));

}

catch (Exception e)

{

System.out.println("Error while decrypting: " + e.toString());

JOptionPane.showMessageDialog(null,"Помилка при розшифруванні","Error",JOptionPane.ERROR_MESSAGE);

}

return null;

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

jScrollPane3 = new javax.swing.JScrollPane();

jTextArea_AlisaMsg = new javax.swing.JTextArea();

jScrollPane4 = new javax.swing.JScrollPane();

jTextArea_TrendFromAlisaMsg = new javax.swing.JTextArea();

jScrollPane5 = new javax.swing.JScrollPane();

jTextArea_BobEncrMsg = new javax.swing.JTextArea();

jTextField_seansKey = new javax.swing.JTextField();

jButton_AlisaGen = new javax.swing.JButton();

jTextField_BobRndAlisa = new javax.swing.JTextField();

jButton_AlisaEncr = new javax.swing.JButton();

jScrollPane6 = new javax.swing.JScrollPane();

jTextArea_AlisaEncrMsg = new javax.swing.JTextArea();

jButton_AlisaSend = new javax.swing.JButton();

jButton_TrendDecr = new javax.swing.JButton();

jScrollPane7 = new javax.swing.JScrollPane();

jTextArea_TrendDecrMsg = new javax.swing.JTextArea();

jTextField_seanskeyTrand = new javax.swing.JTextField();

jTextField_TrandRndBob = new javax.swing.JTextField();

jButton_TrendEncr = new javax.swing.JButton();

jScrollPane8 = new javax.swing.JScrollPane();

jTextArea_TrandToBobMsg = new javax.swing.JTextArea();

jButton_TrandSend = new javax.swing.JButton();

jButton_BobDecr = new javax.swing.JButton();

jScrollPane9 = new javax.swing.JScrollPane();

jTextArea_BobDecrMsg = new javax.swing.JTextArea();

jTextField_seanskeyBob = new javax.swing.JTextField();

jTextField_BobRnd = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Аліса");

jLabel2.setText("Тренд");

jLabel3.setText("Боб");

jTextArea_AlisaMsg.setColumns(20);

jTextArea_AlisaMsg.setRows(5);

org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_AlisaMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_AlisaMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane3.setViewportView(jTextArea_AlisaMsg);

jTextArea_TrendFromAlisaMsg.setEditable(false);

jTextArea_TrendFromAlisaMsg.setColumns(20);

jTextArea_TrendFromAlisaMsg.setRows(5);

jTextArea_TrendFromAlisaMsg.setEnabled(false);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_TrendFromAlisaMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_TrendFromAlisaMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane4.setViewportView(jTextArea_TrendFromAlisaMsg);

jTextArea_BobEncrMsg.setEditable(false);

jTextArea_BobEncrMsg.setColumns(20);

jTextArea_BobEncrMsg.setRows(5);

jTextArea_BobEncrMsg.setEnabled(false);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_BobEncrMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_BobEncrMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane5.setViewportView(jTextArea_BobEncrMsg);

jButton_AlisaGen.setText("Згенерувати");

jButton_AlisaGen.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_AlisaGenActionPerformed(evt);

}

});

jButton_AlisaEncr.setText("Зашифрувати");

jButton_AlisaEncr.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_AlisaEncrActionPerformed(evt);

}

});

jTextArea_AlisaEncrMsg.setColumns(20);

jTextArea_AlisaEncrMsg.setRows(5);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_AlisaEncrMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_AlisaEncrMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane6.setViewportView(jTextArea_AlisaEncrMsg);

jButton_AlisaSend.setText("Відправити");

jButton_AlisaSend.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_AlisaSendActionPerformed(evt);

}

});

jButton_TrendDecr.setText("Розшифрувати");

jButton_TrendDecr.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_TrendDecrActionPerformed(evt);

}

});

jTextArea_TrendDecrMsg.setColumns(20);

jTextArea_TrendDecrMsg.setRows(5);

jTextArea_TrendDecrMsg.setEnabled(false);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_TrendDecrMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_TrendDecrMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane7.setViewportView(jTextArea_TrendDecrMsg);

jButton_TrendEncr.setText("Зашифрувати");

jButton_TrendEncr.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_TrendEncrActionPerformed(evt);

}

});

jTextArea_TrandToBobMsg.setColumns(20);

jTextArea_TrandToBobMsg.setRows(5);

jTextArea_TrandToBobMsg.setEnabled(false);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_TrandToBobMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_TrandToBobMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane8.setViewportView(jTextArea_TrandToBobMsg);

jButton_TrandSend.setText("Відправити");

jButton_TrandSend.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_TrandSendActionPerformed(evt);

}

});

jButton_BobDecr.setText("Розшифрувати");

jButton_BobDecr.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton_BobDecrActionPerformed(evt);

}

});

jTextArea_BobDecrMsg.setColumns(20);

jTextArea_BobDecrMsg.setRows(5);

jTextArea_BobDecrMsg.setEnabled(false);

binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTextArea_BobDecrMsg, org.jdesktop.beansbinding.ELProperty.create("true"), jTextArea_BobDecrMsg, org.jdesktop.beansbinding.BeanProperty.create("lineWrap"));

bindingGroup.addBinding(binding);

jScrollPane9.setViewportView(jTextArea_BobDecrMsg);

jTextField_seanskeyBob.setEnabled(false);

jTextField_BobRnd.setEnabled(false);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jButton_AlisaSend, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)

.addComponent(jButton_AlisaEncr, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField_BobRndAlisa, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)

.addComponent(jTextField_seansKey)

.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jButton_AlisaGen, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(jLabel2)

.addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)

.addComponent(jButton_TrendDecr, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jScrollPane7)

.addComponent(jTextField_seanskeyTrand)

.addComponent(jTextField_TrandRndBob)

.addComponent(jScrollPane8))

.addComponent(jButton_TrendEncr, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton_TrandSend, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addGap(0, 74, Short.MAX_VALUE)

.addComponent(jButton_BobDecr, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(jTextField_seanskeyBob)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(jLabel3)

.addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)

.addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)

.addComponent(jTextField_BobRnd))

.addGap(0, 0, Short.MAX_VALUE)))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(jLabel2)

.addComponent(jLabel3))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jButton_AlisaGen)

.addComponent(jButton_TrendDecr)

.addComponent(jButton_BobDecr))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addComponent(jTextField_seansKey, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField_BobRndAlisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton_AlisaEncr)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jScrollPane6))

.addGroup(layout.createSequentialGroup()

.addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField_seanskeyTrand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField_TrandRndBob, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton_TrendEncr)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(jTextField_seanskeyBob, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField_BobRnd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jButton_AlisaSend)

.addComponent(jButton_TrandSend))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

bindingGroup.bind();

pack();

}// </editor-fold>

private void jButton_AlisaGenActionPerformed(java.awt.event.ActionEvent evt) {

int[] keynum = new int[16];

for(int i=0; i<16; i++){

keynum[i]= (int) (Math.random()*255);

}

char [] keySymbol = new char[16];

for (int i=0;i<16;i++) {

keySymbol[i] = (char) keynum[i];

}

String SeansKey = "";

for (int i=0; i<16; i++) {

SeansKey+=keySymbol[i];

}

jTextField_seansKey.setText(SeansKey);

jTextField_BobRndAlisa.setText(RndNumBob_);

}

private void jButton_AlisaEncrActionPerformed(java.awt.event.ActionEvent evt) {

String SeansKey = jTextField_seansKey.getText();

String MsgAlisa = jTextArea_AlisaMsg.getText();

if (!"".equals(MsgAlisa)) {

String EncrMsgAlisa;

String RndNumBob = jTextField_BobRndAlisa.getText();

EncrMsgAlisa = encrypt(MsgAlisa + SeansKey + RndNumBob, AlisaTrendKey);

jTextArea_AlisaEncrMsg.setText(EncrMsgAlisa);

} else JOptionPane.showMessageDialog(null,"Введіть повідомлення","Error",JOptionPane.ERROR_MESSAGE);

}

private void jButton_AlisaSendActionPerformed(java.awt.event.ActionEvent evt) {

String MSG = jTextArea_AlisaEncrMsg.getText();

jTextArea_TrendFromAlisaMsg.setText(MSG);

}

private void jButton_TrendDecrActionPerformed(java.awt.event.ActionEvent evt) {

String EncrMsgAlisa = jTextArea_TrendFromAlisaMsg.getText();

String TrendDecrMsg = "";

String ReverseTrandRndBob = "";

String ReverseSeanseKey = "";

String Msg = "";

if(!"".equals(EncrMsgAlisa)){

TrendDecrMsg = decrypt(EncrMsgAlisa,AlisaTrendKey);

char[] TrendDecrMsgArr = TrendDecrMsg.toCharArray();

int j = 0;

for(int i = TrendDecrMsg.length() - 1; i >= 0; i--){

if(j<=31) {

if(j<16){

ReverseTrandRndBob += TrendDecrMsgArr[i];

}else {

ReverseSeanseKey += TrendDecrMsgArr[i];

}

}else break;

j++;

}

for (int i = 0; i<TrendDecrMsg.length() - 32; i++) {

Msg += TrendDecrMsgArr[i];

}

StringBuilder Buff1 = new StringBuilder(ReverseTrandRndBob);

StringBuilder Buff2 = new StringBuilder(ReverseSeanseKey);

jTextField_seanskeyTrand.setText(Buff2.reverse().toString());

jTextField_TrandRndBob.setText(Buff1.reverse().toString());

jTextArea_TrendDecrMsg.setText(Msg);

} else JOptionPane.showMessageDialog(null,"Повідомлення не надійшло.","Error",JOptionPane.ERROR_MESSAGE);

String RndToBob = jTextField_TrandRndBob.getText();

if(!RndToBob.equals(RndNumBob_)) {

jButton_TrandSend.setVisible(false);

jButton_TrendEncr.setVisible(false);

JOptionPane.showMessageDialog(null,"Числа не співпвдвють.","Error",JOptionPane.ERROR_MESSAGE);

} else {

jButton_TrandSend.setVisible(true);

jButton_TrendEncr.setVisible(true);

}

}

private void jButton_TrendEncrActionPerformed(java.awt.event.ActionEvent evt) {

String RndToBob = jTextField_TrandRndBob.getText();

String SeansKey = jTextField_seanskeyTrand.getText();

String Msg = jTextArea_TrendDecrMsg.getText();

if (!"".equals(Msg)) {

String EncrTrendToBob = encrypt(Msg + SeansKey + RndToBob, TrendBobKey);

jTextArea_TrandToBobMsg.setText(EncrTrendToBob);

} else JOptionPane.showMessageDialog(null,"Повідомлення не надійшло або не розшифровано.","Error",JOptionPane.ERROR_MESSAGE);

}

private void jButton_TrandSendActionPerformed(java.awt.event.ActionEvent evt) {

String Msg = jTextArea_TrandToBobMsg.getText();

jTextArea_BobEncrMsg.setText(Msg);

}

private void jButton_BobDecrActionPerformed(java.awt.event.ActionEvent evt) {

String EncrMsgBob = jTextArea_BobEncrMsg.getText();

String BobDecrMsg = "";

String ReverseRndBob = "";

String ReverseSeanseKey = "";

String Msg = "";

if(!"".equals(EncrMsgBob)){

BobDecrMsg = decrypt(EncrMsgBob,TrendBobKey);

char[] BobDecrMsgArr = BobDecrMsg.toCharArray();

int j = 0;

for(int i = BobDecrMsg.length() - 1; i >= 0; i--){

if(j<=31) {

if(j<16){

ReverseRndBob += BobDecrMsgArr[i];

}else {

ReverseSeanseKey += BobDecrMsgArr[i];

}

}else break;

j++;

}

for (int i = 0; i<BobDecrMsg.length() - 32; i++) {

Msg += BobDecrMsgArr[i];

}

StringBuilder Buff1 = new StringBuilder(ReverseRndBob);

StringBuilder Buff2 = new StringBuilder(ReverseSeanseKey);

jTextField_seanskeyBob.setText(Buff2.reverse().toString());

jTextField_BobRnd.setText(Buff1.reverse().toString());

jTextArea_BobDecrMsg.setText(Msg);

} else JOptionPane.showMessageDialog(null,"Повідомлення не надійшло.","Error",JOptionPane.ERROR_MESSAGE);

String BobRnd = jTextField_BobRnd.getText();

if(!BobRnd.equals(RndNumBob_))JOptionPane.showMessageDialog(null,"Числа не співпвдвють.","Error",JOptionPane.ERROR_MESSAGE);

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new MainFrame().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton_AlisaEncr;

private javax.swing.JButton jButton_AlisaGen;

private javax.swing.JButton jButton_AlisaSend;

private javax.swing.JButton jButton_BobDecr;

private javax.swing.JButton jButton_TrandSend;

private javax.swing.JButton jButton_TrendDecr;

private javax.swing.JButton jButton_TrendEncr;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JScrollPane jScrollPane3;

private javax.swing.JScrollPane jScrollPane4;

private javax.swing.JScrollPane jScrollPane5;

private javax.swing.JScrollPane jScrollPane6;

private javax.swing.JScrollPane jScrollPane7;

private javax.swing.JScrollPane jScrollPane8;

private javax.swing.JScrollPane jScrollPane9;

private javax.swing.JTextArea jTextArea_AlisaEncrMsg;

private javax.swing.JTextArea jTextArea_AlisaMsg;

private javax.swing.JTextArea jTextArea_BobDecrMsg;

private javax.swing.JTextArea jTextArea_BobEncrMsg;

private javax.swing.JTextArea jTextArea_TrandToBobMsg;

private javax.swing.JTextArea jTextArea_TrendDecrMsg;

private javax.swing.JTextArea jTextArea_TrendFromAlisaMsg;

private javax.swing.JTextField jTextField_BobRnd;

private javax.swing.JTextField jTextField_BobRndAlisa;

private javax.swing.JTextField jTextField_TrandRndBob;

private javax.swing.JTextField jTextField_seansKey;

private javax.swing.JTextField jTextField_seanskeyBob;

private javax.swing.JTextField jTextField_seanskeyTrand;

private org.jdesktop.beansbinding.BindingGroup bindingGroup;

// End of variables declaration

}

ГРАФІЧНА ЧАСТИНА

Соседние файлы в предмете Криптология