Strona 1 z 1
ROT13 w makro
: ndz sty 29, 2012 5:52 pm
autor: babiniec4
Szukałem w necie i nie znalazłem podpowiedzi na pytanie...
Czy można bezpośrednio w makro wykorzystać funkcję ROT13 aby zakodować i odkodować tekst przy tworzeniu pliku i pobieraniu go z pliku?
sub Wypis()
Open"C:/Test.txt" for output as 1
oSheet=ThisComponent.Sheets.getByName("Arkusz1")
wiersz=14
for x=8 to wiersz-1
oCell=osheet.getCellbyposition(2,x)
s=oCell.getString
Print #1,s
next
Close #1
end sub
Re: ROT13 w makro
: ndz sty 29, 2012 7:00 pm
autor: Jan_J
Kod: Zaznacz cały
Sub Test()
funs = createUnoService( "com.sun.star.sheet.FunctionAccess" )
x = "abcd"
dim args(0) as string
args(0) = x
y = funs.callFunction("rot13", args)
print x, "-->", y
End Sub
Tylko że na co komu rot13. Do zabawy?
Re: ROT13 w makro
: pn sty 30, 2012 12:34 am
autor: babiniec4
Być może dla wielu z tu obecnych jest to dość prymitywny sposób kodowania ale wszystko zależy od tego na jakim poziomie wiedzy aktualnie się znajdujemy. Chciałem się tylko zorientować czy taka możliwość istnieje bo akurat w moim przypadku wymiana danych pomiędzy arkuszami następuje poprzez eksport/import do/z plików tekstowych. Ingerencja "psotnika-szperacza" w konkretny plik może zakłócić poprawność działań. Kodując wszystkie z nich mógłbym zniechęcić do poszukiwania tego "wybranego". Oczywiście zawsze go można zmodyfikować i popsuć wszystko, ale równie dobrze można skasować pliki i foldery każdej aplikacji. Zawsze można zdekodować zawartość jeśli zna się klucz ale to zadanie dla uparciucha. Przykład, który mi podałeś w połączeniu z makrem powyżej działa i dziękuje za chęci. Cóż przesunięcie o 13 miejsc to rzeczywiście słabe wyzwanie. Może masz pomysł na skuteczną ochronę tych danych np zakodowaniem czymś innym (rot47), ukryciem tego pliku ?
Re: ROT13 w makro
: pn sty 30, 2012 3:08 pm
autor: Jan_J
Czy nie da się po prostu uniemożliwić modyfikacji danych przez ustawienie atrybutów dostępu do plików?
Do wykrycia zmian w zawartości pliku, bez wskazania miejsca i przyczyny, możesz użyć sum kontrolnych (md5, sha1, sha256). Wartości sum musiałyby być przechowywane poza możliwością zmiany przez niepowołanych. Przed wczytaniem pliku należałoby sprawdzić, czy sumy się zgadzają.
Do uniemożliwienia zmiany (poza totalną destrukcją) lepiej użyć szyfrowania z hasłem. Najprostsze wydaje się opakowanie plików w zip-a. Makro mogłoby go rozpakowywać i wczytywać zawartość.
Re: ROT13 w makro
: ndz lut 05, 2012 1:36 am
autor: babiniec4
Archiwum zip z hasłem byłoby niezłe. Szukałem makr do tworzenia/rozpakowywania ale nie znalazłem a to co znalazłem nie chce działać...więc hmmm
Re: ROT13 w makro
: ndz lut 05, 2012 9:57 am
autor: Jan_J
O ile dobrze rozumiem, chroniony plik zawiera wyłącznie dane do obróbki, zasysane do arkusza. Wynikowy dokument nie ma już być chroniony?
Ad obsługa zip-a:
* w Basicu jest instrukcja system, która potrafi uruchamia dowolny zewnętrzny program. Na przykład można jej użyć do wywołania konsolowego dekompresora. W takim przypadku sposób przekazania hasła należy wyczytać z dokumentacji użytego programu.
* w Open/LibreOffice jest wbudowany Python. Co prawda dość okrojony i trudny w tworzeniu makr (brak edytora i debuggera zintegrowanego z OOo), ale takie rzeczy jak dostęp do zip robi się w nim od ręki.