• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Kontaktformular verschlüsseln

pcbie

New member
Ich versuche mehrere Eingabefelder in einem String zusammen zufassen und anschließend zu verschlüsseln.

Die drei Eingabefelder aname / bphone / cnachricht sollten als var message zusammengefasst werden, leider wird mir immer nur das erste Feld ausgegeben.

Javascript:
<script>
document.addEventListener('DOMContentLoaded', function() {
    if (window.crypto && window.crypto.getRandomValues) {
        // form ready
        var aname = document.getElementById("nname");
        var bphone = document.getElementById("nphone");
        var cnachricht = document.getElementById("message");
        var message = aname, bphone, cnachricht;
        // encrypt on submit
    console.log(document.forms);
        document.forms[0].addEventListener("submit", function(evt) {
            evt.preventDefault();
            if (form.elements['message'].value == '') {
                alert('Please enter a message!');
            } else {
                encrypt(message.value).then(function(encrypted_msg) {
                    form.elements['message'].value = encrypted_msg;
                    form.submit();
                });
                return true;
            }
        });
    } else {
        // not ready
        document.getElementById("button").disabled = true;
        window.alert("Error: Browser not supported\nReason: We need a cryptographically secure PRNG to be implemented (i.e. the window.crypto method)\nSolution: Use Chrome >= 11, Safari >= 3.1, Firefox >= 21, Opera >= 15 or IE >= 11.");
        return false;
    }
});

function encrypt(msg) {
    if (msg.indexOf("-----BEGIN PGP MESSAGE-----") !== -1 && msg.indexOf("-----END PGP MESSAGE-----") !== -1) {
        return msg;
    } else {
        var key = document.getElementById("pubkey").innerHTML;
        var publicKey = openpgp.key.readArmored(key).keys[0];
        return openpgp.encryptMessage(publicKey, msg).then(function(pgpMessage) {
            return pgpMessage;
        });
    }
}
</script>

Hier das komplette HTML
HTML:
<!DOCTYPE html>
<html>
<head>
  <title>Contact</title>
  <script src="js/openpgp.min.js" type="text/javascript"></script>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>
<body>

<script>
document.addEventListener('DOMContentLoaded', function() {
    if (window.crypto && window.crypto.getRandomValues) {
        // form ready
        var aname = document.getElementById("nname");
        var bphone = document.getElementById("nphone");
        var cnachricht = document.getElementById("message");
        var message = aname, bphone, cnachricht;
        // encrypt on submit
    console.log(document.forms);
        document.forms[0].addEventListener("submit", function(evt) {
            evt.preventDefault();
            if (form.elements['message'].value == '') {
                alert('Please enter a message!');
            } else {
                encrypt(message.value).then(function(encrypted_msg) {
                    form.elements['message'].value = encrypted_msg;
                    form.submit();
                });
                return true;
            }
        });
    } else {
        // not ready
        document.getElementById("button").disabled = true;
        window.alert("Error: Browser not supported\nReason: We need a cryptographically secure PRNG to be implemented (i.e. the window.crypto method)\nSolution: Use Chrome >= 11, Safari >= 3.1, Firefox >= 21, Opera >= 15 or IE >= 11.");
        return false;
    }
});

function encrypt(msg) {
    if (msg.indexOf("-----BEGIN PGP MESSAGE-----") !== -1 && msg.indexOf("-----END PGP MESSAGE-----") !== -1) {
        return msg;
    } else {
        var key = document.getElementById("pubkey").innerHTML;
        var publicKey = openpgp.key.readArmored(key).keys[0];
        return openpgp.encryptMessage(publicKey, msg).then(function(pgpMessage) {
            return pgpMessage;
        });
    }
}
</script>

<h3>Testformular</h3>

<form id="form" method="post" action="send_form.php">
    <table width="450px">
        <tr>
              <td valign="top">
                   <label for="email">Ihre eMail</label>
             </td>
              <td valign="top">
                   <input type="text" name="email" style="height:18px;width:300px;">
              </td>
         </tr>      
        <tr>
              <td valign="top">
                   <label for="subject">Betreff</label>
             </td>
              <td valign="top">
                   <input type="text" name="subject" style="height:18px;width:300px;">
              </td>
         </tr>
        <tr>
              <td colspan="2">
            <p>Die nachfolgenden Eingaben werden verschlüsselt übermittelt.
              </td>
        </tr>        
        <tr>
              <td valign="top">
                   <label for="nname">Name</label>
             </td>
              <td valign="top">
                   <input type="text" id="nname" name="nname" style="height:18px;width:300px;">
              </td>
         </tr>
        <tr>
              <td valign="top">
                   <label for="nphone">Telefon</label>
             </td>
              <td valign="top">
                   <input type="text"  id="nphone" name="nphone" style="height:18px;width:300px;">
              </td>
         </tr>                    
        <tr>
            <td valign="top">
                <label for="message">Nachricht</label>
            </td>
            <td valign="top">
                <textarea  id="message" name="message" style="height:150px;width:300px;"></textarea>
         </td>
        </tr>
        <tr>
              <td colspan="2">
                <input type="submit">
              </td>
        </tr>
    </table>
</form>

<!-- your pgp public key -->

<div id="pubkey" hidden="true">
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=DFVj
-----END PGP PUBLIC KEY BLOCK-----
</div>

</body>
</html>

Danke für Eure Hilfe.
 
schau mal das an:

Javascript:
        // Zugriff auf die Werte der Eingabefelder
        var anameValue = document.getElementById("nname").value;
        var bphoneValue = document.getElementById("nphone").value;
        var cnachrichtValue = document.getElementById("message").value;

        // Zusammenführen der Werte in einer Nachricht
        var message = anameValue + " " + bphoneValue + " " + cnachrichtValue;

du baust die variable message falsch zusammen.
 
Das zusammenführen der hat leider nicht geklappt.

Habe es jetzt so gelöst:

HTML:
<!DOCTYPE html>
<html>
<head>
  <title>Contact</title>
  <script src="js/openpgp.min.js" type="text/javascript"></script>
  <script src="js/scripts/snippet-javascript-console.min.js?v=1"></script>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>
<body>

<script>
document.addEventListener('DOMContentLoaded', function() {
    if (window.crypto && window.crypto.getRandomValues) {
        // form ready
        var message = document.getElementById("message");
        // encrypt on submit
    console.log(document.forms);
        document.forms[0].addEventListener("submit", function(evt) {
            evt.preventDefault();
            if (form.elements['message'].value == '') {
                alert('Please enter a message!');
            } else {
                encrypt(message.value).then(function(encrypted_msg) {
                    form.elements['message'].value = encrypted_msg;
                    form.submit();
                });
                return true;
            }
        });
    } else {
        // not ready
        document.getElementById("button").disabled = true;
        window.alert("Error: Browser not supported\nReason: We need a cryptographically secure PRNG to be implemented (i.e. the window.crypto method)\nSolution: Use Chrome >= 11, Safari >= 3.1, Firefox >= 21, Opera >= 15 or IE >= 11.");
        return false;
    }
});

function encrypt(msg) {
    if (msg.indexOf("-----BEGIN PGP MESSAGE-----") !== -1 && msg.indexOf("-----END PGP MESSAGE-----") !== -1) {
        return msg;
    } else {
        var key = document.getElementById("pubkey").innerHTML;
        var publicKey = openpgp.key.readArmored(key).keys[0];
        return openpgp.encryptMessage(publicKey, msg).then(function(pgpMessage) {
            return pgpMessage;
        });
    }
}
</script>

<h3>Testformular</h3>

<form id="form" method="post" action="send_form.php">
    <table width="450px">
        <tr>
              <td valign="top">
                   <label for="email">Ihre eMail</label>
             </td>
              <td valign="top">
                   <input type="text" name="email" style="height:18px;width:300px;">
              </td>
         </tr>       
        <tr>
              <td valign="top">
                   <label for="subject">Betreff</label>
             </td>
              <td valign="top">
                   <input type="text" name="subject" style="height:18px;width:300px;">
              </td>
         </tr>
        <tr>
              <td colspan="2">
            <p>Die nachfolgenden Eingaben werden verschlüsselt übermittelt.</p>
              </td>
        </tr>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>                 
        <tr>
              <td valign="top">
                   <label for="nname">Name</label>
             </td>
              <td valign="top">
                   <input class="combine" id="input1"  name="name" value="" style="height:18px;width:300px;"/>
              </td>
         </tr>
        <tr>
              <td valign="top">
                   <label for="nphone">Telefon</label>
             </td>
              <td valign="top">
                   <input class="combine" id="input2"  name="phone" value="" style="height:18px;width:300px;"/>
              </td>
         </tr>                     
        <tr>
            <td valign="top">
                <label for="message1">Nachricht</label>
            </td>
            <td valign="top">
                <textarea  class="combine" id="input3" style="height:150px;width:300px;"></textarea>
         </td>
        </tr>
         </tr>                     
        <tr>
            <td valign="top">
                <label for="message">Verschlüsselt</label>
            </td>
            <td valign="top">
            <textarea  id="message" name="message" style="height:150px;width:300px;"></textarea>
         </td>
        </tr>
<script type="text/javascript">
$(document).ready(function(){
$("#setVal").click(function(){
$("#message").val("Name\n" + $("#input1").val() + " \n\nTelefon Nr.\n" + $("#input2").val()+ " \n\nNachricht\n" + $("#input3").val());
});
});
</script>       
        <tr>
              <td colspan="2">
                <button id="setVal">Nachricht senden</button>
              </td>
        </tr>
    </table>
</form>

<!-- your pgp public key -->

<div id="pubkey" hidden="true">
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=DFVj
-----END PGP PUBLIC KEY BLOCK-----
</div>

</body>
</html>

So funktioniert es für mich am Besten und ist erweiterbar.

Danke für Eure Unterstützung.

Viele Grüsse
Peter
 
Zurück
Oben