Zgodnie z najlepszymi praktykami bezpieczeństwa przechowuję zwykły plik tekstowy z hasłami na dysku twardym. W rzeczywistości właśnie skopiowałem i wkleiłem jeden z nich, aby uzyskać dostęp do mojego konta PPCG.
W przejrzystym momencie postanawiam, że hasło nie powinno pozostać w schowku po jego użyciu. Ponieważ zdarza mi się to często, mogę użyć programu do usunięcia zawartości schowka.
Wyzwanie
Napisz program lub funkcję, która usuwa lub zastępuje dowolny tekst zawarty w schowku, używając wybranego języka programowania .
Dodatkowe Szczegóły:
Jeśli twój system ma kilka schowków, możesz napisać program dla dowolnego z nich. Jedynym wymaganiem jest to, że użytkownik musi mieć możliwość kopiowania i wklejania tekstu za pomocą tego schowka.
Jeśli Twój schowek przechowuje historię ostatnio skopiowanych wpisów, załóż najnowszy wpis.
Jeśli twoja odpowiedź jest specyficzna dla systemu operacyjnego lub schowka, zaznacz ją w tytule wpisu, wraz z użytym językiem.
Schowek z pewnością zawiera tekst podczas uruchamiania programu. Możesz albo usunąć zawartość ze schowka, albo zastąpić ją czymś innym (niekoniecznie tekstem). Jedynym wymaganiem jest to, że po uruchomieniu programu wklejenie ze schowka nie spowoduje wygenerowania oryginalnego tekstu.
Jeśli zdecydujesz się zastąpić jakimś stałym lub losowo wybranym tekstem, możesz założyć, że zawartość poprzedniego schowka jest inna niż ten tekst, więc hasło zostanie skutecznie usunięte. Innymi słowy, nie należy uwzględniać możliwości, że tekst wypełniający pokrywa się z hasłem.
Program nie powinien mieć żadnych skutków ubocznych, takich jak ponowne uruchomienie systemu, zamykanie programów, zamykanie komputera lub zamrażanie. Po uruchomieniu programu użytkownik powinien móc nadal korzystać z komputera w normalny sposób, tylko po usunięciu hasła ze schowka. Również standardowe luki są zabronione.
Najkrótszy kod w bajtach wygrywa.
Odpowiedzi:
Excel, 1 naciśnięcie klawisza
Działa, ponieważ program Excel, wyjątkowo, zawsze ma wybór. Prawdopodobnie działa również w innych aplikacjach arkuszy kalkulacyjnych. W przeciwieństwie do innych żartów, odpowiedzi w programie Excel są dość częste w PPCG.
źródło
PowerShell, 3 bajty
To domyślny alias dla
Set-Clipboard
. Gdy jest wywoływany bez przesyłania strumieniowego i bez dostarczonych argumentów, usuwa bieżącą zawartość schowka.źródło
Vim, 3 bajty
Ustawia zawartość schowka na nowy wiersz.
Domyślnie vim otwiera pusty bufor przy uruchomieniu. Teraz program
Y
przesyła (kopiuje) całą linię (łącznie z nową linią) i zapisuje ją w schowku, wciągając tekst do rejestru"*
.*
Może zostać zmieniona na+
dla innego schowka.źródło
JavaScript (Chrome DevTools Console), 6 bajtów
Pamiętaj, że jest to funkcja konsoli (która działa również w konsoli FF) i nie jest częścią standardu językowego.
źródło
[\n ""\n]
)[\n ""\n ]
Document.execCommand("copy")
czy jest to schowek wewnątrz przeglądarki? Używam tego w niektórych skryptach małp sabotażowych, ale zbyt leniwy, aby to sprawdzićAppleScript, 20 bajtów
Ustawia schowek na ... nic.
Zapisałem wiele bajtów, usuwając kod, aby wysłać mi zawartość schowka;)
źródło
Partia (Windows 7 i wyższa wersja), 7 bajtów
Uwaga: odpowie na komunikat o błędzie, taki jak „FC: ...”, ale działa.
„klip” to polecenie kopiujące dane wyjściowe innego programu do schowka (dostępne od wersji Windows 7)
„fc” to polecenie służące do porównania dwóch lub więcej plików. w tym przypadku nie wprowadzamy żadnego pliku. wystąpi błąd, a następnie „klip” ustawi schowek na pusty ciąg.
pod warunkiem, że masz plik „a” w bieżącym katalogu (może być pusty), możesz zrobić jeden lepiej:
Edycja: Zobacz komentarz @Matthew Steeples dla krótszej wersji (ale w PowerShell nie jest partią)
źródło
sc
zamiast,fc
aby uniknąć komunikatu o błędzie. Następniesc
tekst pomocy zostałby ustawiony w schowku. Dodatkowo +1 za informacjęclip
.cd
. :-)x|clip
?h
jest pseudonimem (domyślnie)get-history
, więc możesz to zrobićh|clip
Bash na macOS, 8 bajtów
:
można zastąpić niemal każdą inną pojedynczą postacią.źródło
:|pbcopy
działa zarówno w bash, jak i zsh.C (w systemie Windows),
6562 bajtówEdycja: Zapisano 3 bajty dzięki @Orion.
źródło
0
zamiast niegoNULL
?AHK , 10 bajtów
(Windows)
Czyści zawartość schowka. Jeśli
clipboardAll
zostanie użyty, wszystko się wyczyści.Z dokumentów -
źródło
Java 8,
127125 bajtówGra w golfa:
Nie golfowany:
źródło
SmileBASIC 3, 10 bajtów
Wreszcie wyzwanie praktycznie wykonane dla SmileBASIC 3!
CLIPBOARD
jest wbudowanym, który ustawia schowek tekstowy środowiska na podany ciąg. Tutaj dajemy mu pusty ciąg (zamykanie"
nie jest potrzebne!)źródło
'
!Excel VBA,
98 bajtówZastępuje schowek zawartością
A1
komórki w aktywnym arkuszu (domyślnie pusta, ale może być dowolnym ciągiem / wyrażeniem do wyboru - upewnij się tylko, że nie jest to Twoje hasło!).Wykorzystuje okno natychmiastowe.
Jeden bajt zaoszczędzony dzięki Slai
źródło
[a1].Cut
Python
564840 bajtów (działa tylko w systemie Linux) .8 bajtów zapisanych dzięki @wheatwizard.
źródło
system
zos
ciebie możeszimport os as o
io.system
zamiast tego zadzwoń . Nie potrzebujesz również spacji wokół rury w poleceniu bash.as o
części ... (import os \n os.system("echo |xclip"
)echo
się:
za":|xclip"
__import__('os').system("echo|xclip")
xclip
wywoływanychxsel
w systemach Linux, która zaoszczędziłaby ci kolejnego bajtu - i jak już wspomniano, usuń ponownie część importu „as o”, to po prostu wydłuża czas:import os;os.system(":|xsel")
(29 bajtów).Język Google Chrome, 2 naciśnięcia klawiszy
Na podstawie tej odpowiedzi Notepad ++.
Google Chrome obsługuje Javascript (który z kolei obsługuje RegExp), więc niniejszym twierdzę, że jest nadzbiorem Javascript i własnym językiem.
Jak to działa:
Ctrl+S
wywoła okno dialogowe „Zapisz stronę” ze wstępnie zaznaczonym tekstem „Nowa karta”,Ctrl+C
skopiuje go do schowka, zastępując poprzednią zawartość.Dygresja:
źródło
bash + xsel
8 7bajtówWyjaśnienie
-b
: Działa na zaznaczeniu schowka-c
: usuwa zaznaczenieźródło
b
.Mathematica, 17 bajtów
Ustawia schowek na liczbę 0.
źródło
R (Windows) 18
źródło
readLines(file("clipboard", "r"))
może działać. Spróbuj zapoznać się z dokumentami pomocy R w części „Funkcje manipulowania połączeniami”.Matlab,
1913 bajtówUstaw zawartość schowka do pustej figury.
źródło
axes;print -dmeta;close
ale działa również ...close
Można to prawdopodobnie usunąć. Przez „skutki uboczne” myślałem o tym, że rzeczy znikają, a nie pojawiają się. Ponadtoprint(gcf,'-dm')
działa-dm
tak jest-dmeta
, i pomyślałem, że program powinien działać „po cichu”, bez wyskakiwania żadnego okna :)Bash,
111087 bajtów2 bajty zapisane dzięki @seshoumara za używanie
ls
zamiastecho
Dzięki heksafrakcji isaacg i Riker za sugerowanie kilku 7-bajterowych
Schowek jest ustawiony na wynik
w
. Działa to tylko w systemach opartych na X11. Na przykład w systemie macOS dostęp do tego schowka można uzyskać za pomocą aplikacji opartej na X, takiej jak XQuartz.Stara odpowiedź tylko dla macOS (
119 bajtów):To ustawia zawartość schowka na nowy wiersz.
źródło
ls|xclip
?ls /usr/bin | grep "^.\{1,3\}$"
szukał krótszego polecenia: P)w|xclip
za jeden mniej. Zrzuca listę zalogowanych użytkowników do schowka.:|xclip
. Właściwie czyści schowek.xclip
bez nagrań.Jabłkowy, 23 bajty
źródło
Python + tkinter, 43 bajty
Python 3:
Python 2:
źródło
python-tk
) od „podstawowego pythona”.__import__("tkinter")....
, w tym przypadku jest to 1 bajt dłużej.C #, 30 bajtów
Dzięki Nat , JMD i BgrWorker za sugestie!
C # bez WPF, 36 bajtów
Wbudowana funkcja, która opróżnia schowek.
Pełny program z przypadkiem testowym:
źródło
Clipboard.Clear()
jest już funkcją, więc lambda można upuścić.System.Windows.Clipboard.Clear();
Ale lprun może być bardziej lekkim sposobem na uruchomienie tej odpowiedzi niż VS lub nawet VS Code..Forms
, nie skompilował się w systemie Linux i w tej chwili nie mam komputera z systemem Windows.Haskell, 34 bajty
Po prostu nudna funkcja biblioteki. Istnieje również
clearClipboard
dla tej samej liczby bajtów.źródło
Notepad ++, 3 naciśnięcia klawiszy
Wstawia literę a, zaznacza ją, kopiuje na klawiaturę.
Notepad ++ jest poprawnym językiem, obsługuje regex i dlatego jest nadzbiorem regex, i uważamy, że regex jest poprawnym językiem.
źródło
consider regex to be a valid language
Bibliografia ? Najwyraźniej RegExp sam w sobie nie jest kompletny.It doesn't have to be Turing Complete to be a valid language
W ten sposób możemy twierdzić, że prawie wszystko jest „językiem”. Tj. XML lub HTML też mają składnię (a nawet nazywają się językami, w przeciwieństwie do RegExp), nie sądzę jednak, aby były one dopuszczalne. Czy możesz podać przykład odpowiedzi czysto Regexp, która została oceniona przez społeczność? Ponadto uważam, że Notepad ++ tak naprawdę nie „wspiera regexp” w tym sensie, że może go wywoływać programowo, a otwarcie pola „Wyszukaj i zamień” w interfejsie użytkownika w celu wpisania RegExp nie jest „kodem programu” pod żadnym względem.<c-H>
i używać<tab>
do nawigacji w interfejsie użytkownika i interakcji ze wszystkimi odpowiednimi polami. Zauważ też, że wyrażenie regularne może określać pierwotność i dodawać liczby. (Oba w jedności, która jest domyślną reprezentacją liczbową wyrażenia regularnego)Python 33 bajty (działa tylko w systemie Windows) .
4 bajty zapisane z wersji @hubacub.
3 bajty przełączające się na system Windows przy użyciu rozwiązania @Divcy
Właśnie zarejestrowałem się w Stackexchange, więc nie mam reputacji, aby komentować przesłanie @ububub. Nie ma potrzeby wydatkowania 5 bajtów z „as o” w imporcie, aby zaoszczędzić 1 bajt, aby zredukować „os.system” do „o.system”.
źródło
J (Windows), 12 bajtów
wd
to standardowa biblioteka J dla systemu Windows.wd 'clipcopy password'
umieściłby tekstpassword
w schowku. Określenie niczego nie powoduje wyczyszczenia schowka.Jeśli chcesz, aby program umieścił Twoje hasło w postaci zwykłego tekstu w schowku, możesz użyć następujących opcji:
źródło
'clipcopy 'wd@,]
wd
i'clipcopy'
.JavaScript
17514813913569 bajtówGra w golfa:
Skrzypce
Nie golfił
Uzyskaj pomoc z SitePoint
HTML:
JS:
źródło
Java 8 (JavaFX), 61 bajtów
()->javafx.scene.input.Clipboard.getSystemClipboard().clear()
Interfejs API JavaFX do manipulowania schowkiem jest nieco bardziej zwięzły niż AWT;)
źródło
Tcl / Tk wish shell (REPL), 5 bajtów
Życzenie powłoki (REPL) pozwala na niekompletne polecenia, o ile nie ma dwuznaczności, pełne polecenie byłoby:
źródło
PHP + PHP GTK 2.0 , 24 bajty
Zakłada się, że masz już załadowane rozszerzenie PHP GTK.
Dokumentacja: http://gtk.php.net/manual/en/html/gtk/gtk.gtkclipboard.method.clear.html
źródło
<?
tagu otwierającego, ponieważ możesz uruchomić kod bez<?
tagu w wierszu poleceń za pomocą-r
przełącznika. Zobacz więcej informacji tutaj: meta.codegolf.stackexchange.com/questions/7098/…