Gipfelstürmer Bergtour #5: Iffigalp – Iffighorn – Wildhornhütte – Niesehorn

Das Video der gesamten Tour gibt’s am Ende des Beitrages.

Gipfelstürmer Tour #5

Eine wunderschöne und sehr abwechslungsreiche 2 Tages Rundtour im Berner Oberland bei Lenk mit zwei Gipfeln und Übernachtung auf der Wildhornhütte.

Iffigalp – Iffighorn – Wildhornhütte – Niesehorn – Iffigsee – Iffigalp

  • Dauer: 2 Tage
  • Strecke: 18km
  • Reine Wegzeit: 7h
  • Höhenmeter: 1.464
  • Jahr 2019

Tag 1

Wir fahren von Lenk mit dem PKW zur Iffigalp zum Parkplatz. (Auf dieser Strecke herrscht Einbahnverkehr im Halbstundentakt (Bergfahrt von xx:30 – xx:45, Talfahrt von xx:00 – xx:15).

Vom Parkplatz geht es erst einmal einen Fahrweg den Berg hinauf, nach einigen Metern biegen wir rechts ab den schmalen, steilen Pfad in Richtung Iffighorn. Nach dem steilen Aufstieg befinden wir uns auf einer Hochebene, wo der Enzian nur so sprießt. Auf ca. der Hälfte zum Iffighorn legen wir eine erste Rast ein und stärken uns mit einem zünftigen Vesper.

Danach geht es stetig weiter bergauf auf das Iffighorn (2.378m). Glücklicherweise ist es zwar etwas bewölkt, aber die Sicht ist herrlich auf die umliegende Bergwelt. Auf dem Iffighorn legen wir unsere Mittagsrast ein und genießen ein erstes Gipfelbier.

Gestärkt treten wir den Abstieg an und lassen ca. 300 Höhenmeter hinter uns. Den smaragd-grün schimmernden Iffigsee lassen wir links liegen und machen uns auf den stetigen Aufstieg zur Wildhorn-Hütte.

Auf der bestens gelegenen Wildhornhütte verköstigen uns das Team um David und Monika. Wir bemerken, dass die Beiden die Hütte mit viel Leidenschaft führen und es gibt nichts auszusetzen. Auch die Preise sind human.

Tag 2

Nach einer (mehr oder weniger) erholsamen Nacht geht es am nächsten Morgen den steinigen und am ende sehr steilen Anstieg in Richtung Niesehorn (2.776m). Leider ist die Wegmarkierung nur durch ‚Steintürmchen‘ gegeben und von einer Markierung an den Steinen ist nichts zu sehen. Allerdings haben wir unseren Navigator mit seiner App dabei und wir finden den richtigen Weg, teilweise durch die Schneefelder auf den Gipfel. Dort werden wir mit bestem Wetter, einer herrlichen Aussicht auf die umliegende Bergwelt und das Wildhorn belohnt. Nach einer ausgiebigen Pause mit Vesper und Bier geht es an den steilen und steinigen Abstieg.

Nach einigen Höhenmetern des Abstiegs wandern wir links am Iffigsee vorbei, der in der Mittagssonne ein farbenfrohes Spiel bietet. Beim Abstieg zur Iffigalp werden wir von ein paar einheimischen auf den ‚alten‘ Weg zur Iffigalp geschickt, der sich aber als sehr steinig und etwas unwegsam gestaltet. Also besser den gut markieren neuen Abstieg nehmen (nach dem Iffigsee links halten, Rot/weiß Markiert).

Zurück am Parkplatz bemerken wir die rund 1.500m Abstieg in unseren Knochen und sind von der Wanderung in den Berner-Alpen begeistert.

Topo und Karte

Webcam mit Bewegungserkennung am Raspberry mit „motion“

Das motion paket nutzt eine USB Webcam am raspberry und schreibt geänderte Bilder in ein Verzeichnis. Später sollen die Bilder per PHP Script über den Webserver einsehbar sein.

Motion installieren

Paket motion installieren und Backup des Config-Files:

[sourcecode language=“plain“]sudo apt-get install motion
sudo cp /etc/motion/motion.conf /etc/motion/motion.conf.bak[/sourcecode]

Verzeichnis erstellen, wo die Bilder abgelegt werden (wenn nicht Standard). Das Verzeichnis sollte beim Raspberry auf einen USB-Stick ausgelagert werden wg. vieler Schreibzugriffe (Siehe USB Stick mit Raspberry)

[sourcecode language=“plain“]sudo mkdir /var/www/motion
sudo mkdir /var/www/motion/cams
sudo mkdir /var/www/motion/cam1
sudo mkdir /var/www/motion/cam1/tmb[/sourcecode]

Gemeinsame Berechtigungen für motion und den webserver

Möchten wir auf die Bilddatein vom PHP Script oder anderweitig vom Webserver zugreifen, müssen die korrekten Berechtigungen gesetzt werden und die Gruppenmitgliedschaft angepasst werden:

[sourcecode language=“plain“]sudo groupadd www
sudo usermod -a -G www www-data
sudo usermod -a -G www motion
[/sourcecode]

PHP Script für Webcam Bilder anzeige

Das Script gibt es hier für Euch kostenlos zum Download.

Die Dateien nach /var/www/motion kopieren (zb. mit WinSCP kopieren oder mit wget direkt runterladen und entzipppen).

Evlt noch Berechtigungen setzen:

[sourcecode language=“plain“]sudo chown -R www-data:www /var/www/motion/*[/sourcecode]

Dann noch das Wartungs-Script ausführbar machen

[sourcecode language=“plain“]sudo chmod +x /var/www/motion/jobdo.php
sudo chown www-data:www /var/www/motion/jobdo.php[/sourcecode]

Default ACL und Berechtigungen für neue Bilder müssen gesetzt werden. Dies geschieht mit den erweiterten Berechtigungen an den Ordnern:

[sourcecode language=“plain“]
sudo chmod g+s /var/www/motion/cams/cam1
sudo setfacl -d -m g:www:rw /var/www/motion/cams/cam1
sudo chown motion:www /var/www/motion/cams/cam1/*
sudo chmod www-data:www /var/www/motion/cams/cam1/*
sudo chmod u+w,g+rw,o+r /var/www/motion/cams/cam1/*
[/sourcecode]

motion.conf anpassen

[sourcecode language=“plain“]sudo nano /etc/motion/motion.conf[/sourcecode]

Geänderte Werte:

[sourcecode language=“plain“]daemon on
framerate 2
minimum _frame_time 2
threshold 1500
ffmpeg_cap_new off
target_dir /var/www/motion/cams/cam1
webcam_quality 50
on_event_start /var/www/motion/jobdo.php "%v-%Y%m%d%H%M%S"
on_event_end /var/www/motion/jobdo.php[/sourcecode]

nun nur noch motion und den apache neu starten:

[sourcecode language=“plain“]sudo /etc/init.d/motion restart
sudo /etc/init.d/apache2 restart[/sourcecode]

Raspberry mit USB Surfstick (3G / 2G) dauerhaft ins Internet

Um den Raspberry dauerhaft (nicht im LAN ) mit dem Internet zu verbinden konnte ich mit dem Huawei E303 Stick ein gutes Ergebnis erzielen:

Huawei E303 brauchte bei mir nicht mit usb_modeswitch in den richtigen Modus versetzt werden. Wurde sofort korrekt erkannt!

USB Geräte anzeigen mit lsusb:

[sourcecode language=“plain“]lsusb[/sourcecode]

Dieser klinkt sich als eth1 ein und kann mit ifconfig geprüft werden:

[sourcecode language=“plain“]ifconfig[/sourcecode]

Dieses Netzwerinterface sollte noch konfiguriert werden

[sourcecode language=“plain“]sudo nano /etc/network/interfaces[/sourcecode]

Folgende Einträge hinzufügen:

[sourcecode language=“plain“]
allow-hotplug eth1
auto eth1
iface eth1 inet dhcp
[/sourcecode]

Es macht Sinn den Stick noch vorher an einem Windows PC oder auch über X über die Internetadresse: http://192.168.1.1 zu konfigurieren zb. Autoverbinden PIN eingeben etc.

Danach steht die Internetverbindung eigentlich problemlos zur Verfügung und funktioniert auch zuverlässig nach einem Stromausfall und reboot.

Raspberry USB-Stick als Speicher verwenden

Für wiederkehrende und häufige Schreibzugriffe ist die SD-Karte des PI nicht ideal.
Deshalb sollten Programme und ggf. Dinge, die wiederholt auf Platte geschrieben werden ausgelagert werden. ZBsp. Auf einen USB-Stick.

Mountpoint erstellen

[sourcecode language=“plain“]sudo mkdir /media/usb1[/sourcecode]

Mit dmesg rausfinden welches device dem USB Stick zugeorndet wurde – in der Regel sda.

USB Stick vorbereiten

[sourcecode language=“plain“]sudo fdisk /dev/sda[/sourcecode]

p eingeben für Anzeige der Partitionen. Danach löschen und neue Partition erstellen:

[sourcecode language=“plain“]
Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-7866367, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-7866367, default 7866367):
Using default value 7866367

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[/sourcecode]

Partition formatieren

[sourcecode language=“plain“]sudo mkfs.ext4 /dev/sda1[/sourcecode]

Mounten

[sourcecode language=“plain“]sudo mount /dev/sda1 /media/usb1[/sourcecode]

Dauerhaft mounten in der fstab

[sourcecode language=“plain“]sudo /etc/fstab[/sourcecode]

Inhalt einfügen:

[sourcecode language=“plain“]/dev/sda1 /media/usb1 ext4 defaults 0 2[/sourcecode]

Dateien verschieben oder kopieren

Bsp. www
Kopieren des alten Verzeichnisses auf SD-Karte

[sourcecode language=“plain“]sudo cp -pvr /var/www/* ./media/usb1/www/[/sourcecode]

Umbenennen des alten www Verzeichnisses und symbolischen Link erstellen

[sourcecode language=“plain“]sudo mv /var/www /var/www_old
sudo ln -s /media/usb1/www /var/www[/sourcecode]

 

Eine Raspberry Grundinstallation mit PHP und Apache

Raspbian installieren auf SD-Karte 

Downloads

Image schreiben mit http://sourceforge.net/projects/win32diskimager/ (Achtung unter Admin Ausführen!)

Pakete Aktualisieren

Auf den Raspberry connecten und dann erstmal Pakete aktualisieren:

[sourcecode language=“plain“]sudo apt-get update
sudo apt-get upgrade[/sourcecode]

Pakete Nachinstallieren

 

[sourcecode language=“plain“]
sudo apt-get install php5 acl[/sourcecode]

Bei Dauerbetrieb Zugriffe auf SD-Karte reduzieren

Log und Temp Dateien in den Memory auslagern:

[sourcecode language=“plain“]
sudo nano /etc/fstab[/sourcecode]

Folgendes in der fstab ändern bzw. hinzufügen:

[sourcecode language=“plain“]
none /var/run tmpfs size=5M,noatime 00
none /var/log tmpfs size=5M,noatime 00[/sourcecode]

Evtl Swapping deaktivieren, aber nur wenn genügend Speicher zur Verfügung steht:

[sourcecode language=“plain“]sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove[/sourcecode]

Freien Speicher kann man auch so anzeigen:

[sourcecode language=“plain“]free -m
[/sourcecode]

-m zeigt die Daten in Megabyte an -k in Kilobyte

Apache2 anpassen

Achtung: Apache läuft nicht, wenn das Log-Directory temporär ist, da apache den Ordner /var/log/apache2 erwartet. Dieser ist beim Start mit dieser Variante nicht mehr vorhanden.
Umgehen kann man das indem man den Ordner beim Starten anlegt.

Die schnellste aber auch nicht ganz saubere Methode ist das apache2 startupscript zu modifizieren:

[sourcecode language=“plain“]sudo nano /etc/init.d/apache2
[/sourcecode]

Direkt nach den Header Kommentaren folgende Zeile einfügen:

[sourcecode language=“plain“]mkdir /var/log/apache2
[/sourcecode]

 

Raspberry Watchdog

Der Raspberry verfügt über einen internen Watchdog um ggf. bei Überlast etc. zu rebooten.

Installation

Prüfen ob modul vorhanden, dann automatisch laden und watchdog installieren:

[sourcecode language=“plain“]sudo modprobe bcm2708_wdog
echo "bcm2708_wdog" | sudo tee -a /etc/modules
sudo apt-get install watchdog[/sourcecode]

Configurationsfile anpassen

[sourcecode language=“plain“]sudo nano /etc/watchdog.conf[/sourcecode]

folgendes anpassen:

[sourcecode language=“plain“]watchdog-device = /dev/watchdog

max-load-1 = 24[/sourcecode]

Watchdog nun noch starten

[sourcecode language=“plain“]sudo /etc/init.d/watchdog start[/sourcecode]

Dieser Daemon sendet nun in regelmäßigen Abständen ein Signal an den verbauten Watchdog-Chip. Sollte dieser für eine gewisse Zeit kein Signal mehr vom Software Wachhund bekommen, rebootet er automatisch das System.

Weitere Möglichkeiten sind im man beschrieben und können nach Bedarf erweitert und angepasst werden.

mehr hier:

http://www.gieseke-buch.de/raspberrypi/eingebauten-hardware-watchdog-zur-ueberwachung-nutzen

 

Raspberry Reverse SSH Tunnel

Wird der Raspberry zum Beispiel mit einem Surfstick oder hinter einer Firewall betrieben und möchte man remote auf diesen per SSH oder mit anderen Diensten zugreifen gibt es die Möglichkeit vom Raspberry sich mit einem anderen SSH Server zu verbinden und bestimmte Ports zu tunneln.

Für den SSH Server kann man entweder einen eigenen Raspberry nutzen oder auch zb. Windows Home Server mit BITVISE SSH Server.

AutoSSH

Autossh wird dazu verwendet, die SSH Verbindung immer wieder automatisch herzustellen, wenn sie unterbrochen wurde.

[sourcecode language=“plain“]sudo apt-get install autossh[/sourcecode]

Keypairs erstellen

Auf dem Remote RPI Keys generieren (angemeldeter user : pi)

[sourcecode language=“plain“]cd ~
ssh-keygen -t rsa[/sourcecode]

Public Key auf den Server kopieren und dort installieren bei Windows BitVise SSH Server mit WINSCP übertragen. Ansonsten kann man das auch mit linux mitteln druchführen. (Vorher muss natürlich auf dem Server ein entsprechender User eingerichtet werden)

[sourcecode language=“plain“]ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system[/sourcecode]

SSH Test-Verbindung testen

Port (-p) ggf anpassen oder bei Defaultbetrieb weglassen.

[sourcecode language=“plain“]ssh -p443 user@remote-system[/sourcecode]

Login sollte nun automatisch funktionieren.
SSH mit Remote Port forwarding testen:

[sourcecode language=“plain“]ssh -p443 -fNC -R 10022:localhost:22 user@remote-system[/sourcecode]

Komplexe Variante mit folgenden Ports:

[sourcecode language=“plain“]ssh -p443 -fNC -R 11022:localhost:22 -R 11080:localhost:80 -L 18080:localhost:8080 user@remote-system[/sourcecode]

Erklärung:

  • Remote Port 11022 wird zu lokal Raspberry 22 (SSH) geforwardet
  • Remote Port 11080 wird zu lokal Raspberry 80 (HTTP) geforwardet
  • Und vom Raspberry möchten wir Daten an den Server schicken
    Lokaler Port 18080 wird an den Remote Port 8080 geforwardet (HTTP IPS)

Auto SSH Setup

autoSSH baut die verbindungen automatisch wieder auf (Achtung Traffic)

[sourcecode language=“plain“]autossh -p443 -fNC -R 11022:localhost:22 -R 11080:localhost:80 -L 18080:localhost:8080 user@remote-system[/sourcecode]

autoSSH muss aber bei jedem Start geladen werden – hinzu kommt, dass die Key – Dateien beim PI User liegen.

Einfache Lösung wie folgt mit der Crontab des PI Users, dazu ein Startscript schreiben und das in die crontab des pi users eintragen:

[sourcecode language=“plain“]nano ~/autossh_start[/sourcecode]

Folgender Inhalt in autossh_start

[sourcecode language=“plain“]#!/bin/bash
killall ssh
autossh -p443 -fNC -R 11022:localhost:22 -R 11080:localhost:80 -L 18080:localhost:8080 user@remote-system[/sourcecode]

Das Script noch ausführbar machen:

[sourcecode language=“plain“]chmod u+x ~/autossh_start[/sourcecode]

Crontab schreiben:

[sourcecode language=“plain“]crontab -e -u pi[/sourcecode]

Am Ende eintragen:

[sourcecode language=“plain“]@reboot ~/autossh_start[/sourcecode]

Test ob auch in ctrontab drin:

[sourcecode language=“plain“]crontab -l -u pi[/sourcecode]


 

Serienbriefe in Word mit QR-Codes oder Bildern aus dem Web

Es gibt einen einfachen Weg, Serienbriefe mit QR-Codes oder anderen Bildern aus dem Web zu erstellen.

Dies kann für Eintrittskarten oder sonstige Etiketten notwendig sein.

Hier der Weg:

Excel Datenquelle erstellen.

Beispiel:

excel

 

In Spalte Number eine beliebige Zahl, Nummer oder auch Text. In der Spalte Image wird die URL mit dem VERKETTEN Befehl generiert.

Dieser sieht z.B. So aus: =VERKETTEN(„http://chart.apis.google.com/chart?cht=qr&chs=350×350&chl=“;B2)

Hier wird die Google API genutzt um QR-Codes zu generieren. Man kann hier beliebige URLS hinterlegen oder generieren.

Serienbrief oder Etiketten in Word

Neue Word-Datei erstellen und über Sendungen -> SerienDruck Starten -> Etiketten (oder was Anderes) auswählen und erstellen.

Nun die Excel-Datei als Datenquelle einbinden (Sendungen->Empfänger auswählen -> Vorhandene Liste).

Als nächstes werden die Seriendruckfelder eingefügt.

Bild einfügen

Die URL zum Bild ist in unserer Quelle (Excel-Liste). Nun wird dieses in den Seriendruck eingefügt.

  1. ALT+F9 drücken um Anzeige umzuschalten.
  2. Cursor an Position wo das Bild erscheinen soll
  3. STRG+F9 drücken um Feld einzufügen und folgendes eingeben:
    INCLUDEPICTURE „
  4. STRG+F9 drücken und danach eingeben:
    HYPERLINK
  5. STRG+F9 drücken und wieder einfügen:
    MERGEFIELD (FELDNAME_EXCEL)
    (FELDNAME_EXCEL) ersetzen durch Spaltenname der URL (im Beispiel Image)
  6. Vor der letzten Klammer noch ein “ einfügen.
    So muss es aussehen:
    mergefield
  7. Etiketten aktualisieren drücken.

Etiketten exportieren

Nun müssen die Etiketten in ein neues Dokument exportiert werden:

Fertig stellen und zusammenführen -> Einzelne Dokumente bearbeiten.

Im neu erstellten dokument STRG+A drücken danach F9

Nun wurden alle Bilder aktualisiert.

fertig

ACHTUNG im Serienbriefmodus NICHT die Datensätze aktualisieren, sonst werden die falschen Bilder gecached!

AvisCam / Mikrokopter / CHDK USB Auslöseskript

Mittels CHDK kann man die Canon Kameras gut programmieren. Für AvisCam und USB Auslösung benutze ich folgendes Script mit automatischer Berechnungsfunktion.
Die Verschlusszeit wird vorgegeben und die ISO-Werte werden entsprechend berechnet.

@title AvisCam USB Shutter
@param q Shutter 1st Shot
 @default q 1
 @values q 1/100 1/200 1/400 1/640 1/800 1/1000

@param p Shutter 2nd Shot
 @default p 1
 @values p 1/100 1/200 1/400 1/640 1/800 1/1000

@param f AutofocusLock
 @default f 1
 @values f off on
 
@param w Pic Delay (sec)
 @default w 2
 
@param r Raw Mode
 @default r 0
 @values r off on

rem Defaults - Kameraabhängig - Tabelle benutzen
rem Minium ISO = 80
n = 371
rem Maximum ISO = 3200
x = 891

print "Set focus unendlich"
set_focus 65535
sleep 500
print "Set AF lock"
set_aflock f
sleep 500

rem ND Filter ausschalten
print "ND Filter ausschalten"
set_nd_filter 2
sleep 200

rem Raw mode setzen
print "Set Raw Mode"
set_raw r

sleep 1000 
w = w * 1000
print "Start!"

:eval
c = 0
while 1
 p = get_usb_power 1
 if p > 0 then
 c = c + 1
 rem Shoot Foto now
 rem 1. Messen
 gosub "meter"
 
 rem 2. Verschlusszeit festlegen
 v = q
 gosub "gettv96"
 rem 3. Belichtung ausrechnen
 gosub "exposure"
 rem 4. Knipsen
 
 click "shoot_full"
 print "Shot TV1 #", c, S , T 
 rem 2. Foto wenn untersch. Bel. Zeiten
 if q <> p then
 sleep 1000
 rem 2. Verschlusszeit festlegen
 v = p
 gosub "gettv96"
 rem 3. Belichtung ausrechnen
 gosub "exposure"
 rem 4. Knipsen
 print "Shot TV2 #", c, S, T
 click "shoot_full"
 endif
 rem Zwangspause lt. Parameter
 sleep w
 endif
wend

rem Bild messen
:meter
 press "shoot_half"
 while get_shooting = false
 sleep 10
 wend
 A = get_av96
 B = get_bv96
 return


rem Belichtung (ISO berechnen) 
:exposure
 S = t + A - B
 rem Limit minimum Sv
 if S<n then let S=n
 rem Limit maximum Sv
 if S>x then let S=x
 
 rem Tv anpassen falls außerhalb der limits
 if S <> A + t - B then let T = B + S - A else let T = t
 set_tv96_direct T
 set_sv96 S
 sleep 200
 return
 
rem Umwandlung verschlusszeit in werte
:gettv96
 if v = 0 then let t=640
 if v = 1 then let t=736
 if v = 2 then let t=832
 if v = 3 then let t=896 
 if v = 4 then let t=928
 if v = 5 then let t=960
return

PHP Secure Connection RSA / AES Javascript

Da SSL nicht immer verfügbar ist, und ggf. doch sicher Daten ausgetauscht werden müssen, habe ich mich dazu entschlossen eine PHP und JavasScript Klasse zu bauen, die genau dies tut:

  • Serverseitig Public und Private key (RSA) generieren.
  • Public Key an den Client schicken
  • Client erstellt einen gemeinsamen Schlüssel und sendet ihn per RSA Verschlüsselung an den Server.
  • Ab jetzt erfolgt die Kommunikation AES verschlüsselt.
  • Der Server kann AES verschlüsselte HTML-Daten (texte, Divs etc.) übermitteln, der Client empfängt diese und entschlüsselt sie.
  • Der Client kann GET Parameter und POST Formulare verschlüsselt and den Server senden
  • Key Renewal und Connection Ping eingebaut.

Auf PHP Server-Seite braucht man fast nichts tun – auf Client Seite ebenfalls nicht.

Beispiel einer PHP Date auf dem Server, die HTML Generiert und ausgibt, sowie Daten empfängt.

<?php
 require_once("secon/secon.cls.inc.php");
 $secon = new secon();
?>
<html>
<!-- BEGIN SECON INCLUDE -->
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 <script type="text/javascript" src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js"></script> <!-- Used for Key Generation and Salting --->
 <script type="text/javascript" src="secon/js/jsbn.js"></script> <!-- BigInt etc. Java Helper Tools --->
 <script type="text/javascript" src="secon/js/rsa2.js"></script> <!-- RSA Encryption --->
 <script type="text/javascript" src="secon/js/sha1.js"></script> <!-- Used SHA1 Hashing --->
 <script type="text/javascript" src="secon/js/aes.js"></script> <!-- AES Ecnryption --->
 <script type="text/javascript" src="secon/js/storage.js"></script> <!-- Browser Window Storage of Variables and Content --->
 <script type="text/javascript" src="secon/js/secon.js"></script> <!-- Secure Connection Class --->
 
 <!-- Activate Secon for this page and assign handlers -->
 <script type="text/javascript">
 var secon = new secon(); // Init Secon
 $( document ).ready(function() { // When loading is finished do
 secon.Ping(); // Initiate a Ping to check if Server and Client are OK.
 secon.DeCryptContent('.seconCrypted'); // Run Decrypting HTML Content deliverd by server, specify Jquery selector
 secon.AttachForms(".secon"); // Attach Secon Handler for secure Form - Transfer
 secon.AttachLinks(".secon"); // Attach Secon Handler for secure GET (Link) Transfer
 });
 </script> 
 
<!-- END SECON INCLUDE ---> 
 
 <body>
 <?php
 echo "<div class='seconCrypted'>";
 echo $secon->CryptText('Dies ist ein geheimer Text')
 echo "</div>"; 
 ?>
 </body>
</html>

Im Debug Fenster des Clients (Browser z.B. Chrome oder Firefox, kann man sehen, dass die Daten vershlüsselt werden und dann übertragen werden.form

Formular verschlüsselt senden

Das Formular wird verschlüsselt abgeschickt indem es einfach die Klasse .secon bekommt.

<form method="post" class="secon">

Normalerweise würden bei PHP die Daten in $_POST stehen. Da wir verschlüsselt übertragen stehen diese Daten in gleicher Form jedoch in $secon->DATA zur verfügung.

Parameter von Links verschlüsselt senden

Es ist einfach möglich Links wie zb. http://myserver.de/mydat.php?secret=1234&type=mode Verschlüsselt an den Server zu übertragen. Dazu muss der <a href link einfach die klasse secon bekommen.

<a href="index.php?mode=test&secret=1234&irgendwas=2" class="secon">My Link</a>

Im empfangenden PHP Script auf dem Server stehen die Daten dann ebenfalls in $secon->DATA zur verfügung.

Daten vom Server verschlüsselt an den Client senden:

Auch wird es notwendig sein bestimmte Daten vom Server in verschlüsselter Form an den Client zu transferieren. Die Daten müssen in einen Container z.B. DIV gepackt werden, da der Client per Javascript JQUERY Selector dann die Daten entschlüsselt. In dem Container dürfen dann nur verschlüsselte Daten stehen!

<div class="seconCrypted">
<?php echo $secon->CryptText('<b>My very secure data here...</b>');?>
</div>

 

Auf dem Client kommen die Daten dann wie unten zu sehen an und werden erst dort entschlüsselt und visualisiert:response

Auf diese Art könnte nicht nur ein DIV, sondern sogar der ganze Body verschlüsselt übertragen werden.

Secon Komplettpaket (PHP, JS und DEMO) als ZIP