パスワードをクリップボードにコピーしました!削除できますか?


96

以下の最良の セキュリティ プラクティスを、私は私のハードドライブ上の私のパスワードがプレーンテキストファイルを保ちます。実際、PPCGアカウントにアクセスするために、そのうちの1つをコピーして貼り付けました。

明快な瞬間に、私はパスワードを使用した後にクリップボードに残しておくべきではないと判断しました。これはよくあることなので、プログラムを使用してクリップボードの内容を削除できます。

チャレンジ

選択したプログラミング言語を使用して、クリップボードに含まれるテキストを削除または上書きするプログラムまたは関数を作成します。

さらなる詳細:

  • システムに複数のクリップボードがある場合、それらのいずれかのプログラムを作成できます。唯一の要件は、ユーザーがそのクリップボードを使用してテキストをコピーおよび貼り付けできる必要があることです。

  • クリップボードが最近コピーされたエントリの履歴を保持している場合、最新のエントリを想定します。

  • 回答がオペレーティングシステムまたはクリップボードに固有のものである場合は、使用する言語とともに、投稿のタイトルでそれを示します。

  • クリップボードには、プログラムの実行時にテキストが含まれることが保証されています。クリップボードからコンテンツを削除するか、他の何か(必ずしもテキストではない)で上書きすることができます。唯一の要件は、プログラムの実行後、クリップボードから貼り付けても元のテキストが生成されないことです。

  • 固定またはランダムに選択されたテキストで上書きすることを選択した場合、以前のクリップボードの内容はそのテキストとは異なるため、パスワードは事実上削除されます。つまり、フィラーテキストがパスワードと一致する可能性を無視します。

  • プログラムには、システムの再起動、プログラムの終了、コンピューターのシャットダウン、フリーズなどの副作用がありません。プログラムを実行した後、ユーザーはクリップボードからパスワードを削除するだけで、通常どおりコンピューターを使用できます。また、標準の抜け穴は禁止されています。

バイト単位の最短コードが優先されます。


クリップボードに未定のエントリがある場合はどうなりますか?
LarsW

20
もっと深刻な注意事項:keepassのようなものを使用して、あなたのためにそれをしてください。
flawr

17
「フィラーテキストがパスワードと一致する可能性は無視してください。」解決策: ``、0バイト。パスワードをそれ自体で上書きします。
エソランジングフルーツ

2
@ Challenger5しかし、それは固定またはランダムに選択されたテキストで上書きすることを選択した場合
ルイスメンドー

11
この質問の最悪の部分は、それが風刺的であることを知っているにもかかわらず、私がイントロストーリーに完全に関連できることです。...だから、キーパス、ハァッ?それを調べる必要があります...
ナット

回答:


14

Excel、1キーストローク

Ctrl-C

Excelは一意であるため、常に選択範囲があるために機能します。おそらく他のスプレッドシートアプリケーションでも動作します。他の冗談のエントリとは異なり、Excelの回答はPPCGで実際に幾分頻繁に行われます。


2
これは2回のキーストロークではありませんか?「キーストロークとは、キーボード上のキーを1回押すことです。各キーを押すことはキーストロークです。」computerhope.com/jargon/k/keystroke.htm
Martijn

@Martijnおそらく。ここからコピーしました
アダム

キーストロークによるスコアリングが本当に有効かどうかはわかりません。また、他の冗談のエントリとは対照的に、あなたが言うので、あなたがこれを認めると実際に有効な答えではないと解釈します。ですから、たとえそれが最短であっても受け入れません。あなたがスコアリング方法としてキーストロークの妥当性を確立するいくつかの関連するメタポストに私を指すことができれば、私は喜んでこの提出を受け付けます
ルイスMendo

@LuisMendoあなたの中間線分析は正しいですが、今では私は実際にメタの研究に時間をかけました:codegolf.meta.stackexchange.com/a/4817/43319は、 「Windows」はエディターではありません。
アダム

@Adámそのメタ投稿は、「コードゴルフ」チャレンジのスコアリング方法としてキーストロークの数を使用するのではなく、仮想の「エディターゴルフ」チャレンジカテゴリを指すと理解しています。私は彼らの意見を知るためにドアノブとデニスにpingをしました
ルイスメンドー

123

PowerShell、3バイト

scb

これがのデフォルトのエイリアスですSet-Clipboard。パイプなしで引数を指定せずに呼び出すと、現在のクリップボードの内容が吹き飛ばされます。


23
クリップボードを改行またはまったく空白に設定するのではなく、実際にクリップボードをクリアする最短の回答。
ルナ

1
これはすごく素敵。
beppe9000

72

Vim、3バイト

"*Y

クリップボードのコンテンツを改行に設定します。

デフォルトでは、vimは起動時に空のバッファーを開きます。これで、プログラムYは行全体(改行を含む)をアンク(コピー)し、テキストをregisterにヤンクしてクリップボードに保存します"**変更することができ+、他のクリップボードのために。


6
Aaargh、私はこの答えを投稿するつもりでした!+1、仕事に最適なツール。:)
DJMcMayhem

powershellよりもvimのインストールが多い場合、これは "Universality"に基づいて受け入れられる回答になります;)
JPCF

1
@JPCFおよびC#で記述された「実際の」アプリケーションは、coffeescriptなどよりもはるかに多くあります。コードゴルフに関しては、1つが他よりも優れているわけではありません
Baldrickk

1
PowerShellはWindows 8以降にデフォルトでインストールされるため、vimのインストール数はPowerShellよりも多いとは思いません。
ロバートフレイザー

56

Javascript(Chrome DevTools Console)、6バイト

copy``

これはコンソールの機能であり(FFコンソールでも機能する)、言語標準の一部ではないことに注意してください。


3
フス、JSにこの機能があることは知りませんでした。Firefoxでも機能します。(クリップボードの内容はになります[\n ""\n]
ETHproductions

1
Chromeでもこれを確認できます。:へのクリップボードの変更[\n ""\n ]
haykam

32
@ETHproductions実際、この関数は実際にはJSに存在しませ。これは組み込みのコンソールです。(答えは無効になりません。しかし、より明確に説明する必要があるかもしれません。)
アーナルド

まあ、それは存在しないのDocument.execCommand("copy")ですか、それは内部からブラウザへのクリップボードですか?私はいくつかの改ざん猿スクリプトでそれを使用していますが、それをチェックするには
怠laです-pinkfloydx33

1
さて...これは今、私の最も賛成の新しい答え
-SuperJedi224

55

AppleScript、20バイト

set the clipboard to

クリップボードを...に設定します。


クリップボードの内容を送信するコードを削除することで、多くのバイトを節約しました;)


32

バッチ(Windows 7以降のバージョン)、7バイト

fc|clip

注:「FC:...」などのエラーメッセージが表示されますが、動作します。

「クリップ」は、別のプログラムの出力をクリップボードにコピーするコマンドです(Windows 7以降で使用可能)

「fc」は、2つ以上のファイルを比較するコマンドです。この場合、ファイルは入力しません。エラーになり、「クリップ」はクリップボードを空の文字列に設定します。

現在のディレクトリにファイル "a"がある場合(空の場合もあります)、もっと良い方法があります。

clip<a

編集:短いバージョンについては@Matthew Steeplesコメントを参照してください(ただし、Powershellではバッチではありません)


2
エラーメッセージを回避するsc代わりにfcを使用できます。次に、scヘルプテキストがクリップボードに設定されます。また、について教えてくれた+1 clip
ニール

2
私が使ったものcd。:-)
Hand-E-Food

クリップが非コマンドの出力を取得しないと思いますか?それで、あなたはただ走ることができなかったx|clip
djsmiley2k-CoW

@ djsmiley2kはい、有効なコマンドからの出力のみを取得します。
Divcy

4
これから別のキャラクターをノックすることができます。h用(デフォルト)の別名があるget-historyので、あなたが行うことができますh|clip
マシュー尖塔

32

macOSでのBash、8バイト

:|pbcopy

: 他のほとんどの単一文字に置き換えることができます。


6
:|pbcopybashおよびzshで動作します。
デジタル外傷

@Nax修正済み
cat

29

C(Windows)、65 62バイト

#include<windows.h>
main(){OpenClipboard(0);EmptyClipboard();}

編集:@Orionのおかげで3バイト保存されました。


24
Cなので、0代わりに使用することはできませんNULLか?
オリオン

23

AHK、10バイト(Windows)

clipboard=

クリップボードのテキストコンテンツをクリアします。場合clipboardAllに使用され、それはすべてをクリアします。

ドキュメントから-

クリップボードは、Windowsクリップボードの現在のコンテンツをテキストとして表現できる場合、その内容を反映する組み込み変数です。対照的に、ClipboardAllには、画像や書式設定など、クリップボード上のすべてが含まれています。


22

Java 8、127 125バイト

ゴルフ:

()->java.awt.Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new java.awt.datatransfer.StringSelection(""),null)

ゴルフをしていない:

public class ICopiedMyPasswordToTheClipboardCanYouDeleteIt {

  public static void main(String[] args) {
    f(() -> java.awt.Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
      new java.awt.datatransfer.StringSelection(""), null));
  }

  private static void f(Runnable x) {
    x.run();
  }
}

2
nullの代わりに空の文字列を使用できますか?2バイト
節約

1
@Pokeはい、動作します。私は、クリップボードの内容を「削除」することに焦点を当てていました。上書きも問題ないことがわかりました。

17

SmileBASIC 3、10バイト

最後に、課題は、実質的に作られた SmileBASIC 3のために!

CLIPBOARD"

CLIPBOARD環境のテキストクリップボードを指定された文字列に設定する組み込み関数です。ここでは、空の文字列を指定します(閉じる"必要はありません!)


説明をありがとう、それは2つのように見えるので'
msanford

17

Excel VBA、9 8バイト

[A1].Cut

A1アクティブなワークシートのセルの内容でクリップボードを上書きします(デフォルトでは空ですが、選択した任意の文字列/式である可能性があります。パスワードではないことを確認してください!)。

イミディエイトウィンドウを使用します。

Slaiのおかげで1バイト節約


1
いいね!あなたがバイトを保存することができます[a1].Cut
Slai

16

Python 56 48 40バイト(Linuxでのみ動作します)

@wheatwizardのおかげで8バイト節約されました。

import os as o
o.system("echo|xclip")

1
サイトへようこそ!私はあなたができるいくつかのゴルフに気づきます。systemからインポートする代わりに、代わりに呼び出すosことができます。また、bashコマンドでパイプの周りのスペースは必要ありません。import os as oo.system
小麦ウィザード

35
as o部分なしで6バイト短くなります...(import os \n os.system("echo |xclip"
Rɪᴋᴇʀ17年

4
また、置き換えることができecho :ために":|xclip"
Rɪᴋᴇʀ

22
または、37バイトで1行のみ:__import__('os').system("echo|xclip")
ダニエル

4
Linuxシステムでxclip呼び出される別の方法もありxselます。これにより、もう1バイト節約できます。既に述べたように、「as o」インポート部分を削除すると、さらに長くなりますimport os;os.system(":|xsel")(29バイト)。
バイトコマンダー

14

Google Chrome言語、2回のキーストローク

<c-S><c-C>

この Notepad ++の回答に基づいています。

Google ChromeはJavascript(RegExpをサポートする)をサポートしているため、Javascriptと独自の言語のスーパーセットであると主張しています。

使い方:

Ctrl+S「新しいタブ」テキストが事前に選択された状態で「ページを保存」ダイアログを呼び出し、Ctrl+Cそれをクリップボードにコピーして、前のコンテンツを置き換えます。

サイドノート:

javascript:URLとデベロッパーツールコンソール(Ctrl + Shift + Jで起動)を介して、ChromeのJavascript機能にアクセスできます。


Gah、Google Chromeを使いたかったのですが、JSのスーパーセットとして議論できることに気づきませんでした。
パベル

8
次に、[画面の印刷]ボタン(1キーストローク)を押すことは、Google Chrome LangのスーパーセットであるWindows言語の解決策だと思います。
ミメットオルセン

@MemetOlsenうん、正確に、投稿してください。既に「Notepad ++ Language」と「Google Chrome Language」があるため、「Windows Language」は次の論理的なステップのようです。:)
ツェッペリン

1
@MemetOlsenは、Chromeはダウンロードする必要がある外部の「ライブラリ」であるため、Google Chrome Langのスーパーセットではありません。これは、ある IE LANGのスーパーセットである JSのスーパーセット。
パベル

おかげで、私はこのSEサイトでの最初の回答として提案を追加しました。
ミメットオルセン

11

bash + xsel 8 7bytes

xsel -c

説明

-b:クリップボード選択で動作します

-c:選択をクリアします


1
+1が、これはcoreutilsのではありません
pacholik

@pacholikはい、パッケージをインストールする必要があります。ターミナルで操作したので、coreutilsと言いました。
アベルトム

1
Debianでは、xselはxselパッケージに含まれており、coreutilsの一部ではありません。
ブライアンミントン

任意のクリップボードを使用することが許可されているため、をドロップできると思いますb
デニス

十分@Digitalトラウマフェア
アベルトム・


10

R(Windows)18

writeClipboard("")

Linuxで同等のものを知っていますか?

何かreadLines(file("clipboard", "r")) うまくいくと思う。「接続を操作する機能」のRヘルプドキュメントを参照してください。
ヒラメ

8

Matlab、19 13バイト

gcf;print -dm

クリップボードの内容を空の図に設定します。


これは、21 UTF-8バイトだ
CAD97

@LuisMendoこれは長く(23)ですaxes;print -dmeta;closeが、また動作します...
EBH

@EBH close間違いなく削除できます。「副作用」によって、私は物事が消えて、現れないことを考えていました。また、print(gcf,'-dm')作品
ルイスメンドー

@LuisMendoまあ、私はそれ-dmが似ていることを知りませんでした-dmeta、そしてウィンドウをポップすることなく、プログラムが「静かに」動作するはずだと思いました:)
EBH

2
@LuisMendo確かに、それは私の最初です。現在、提案はさらに短くなっています。
EBH

8

Bash、11 10 8 7バイト

@seshoumaraのls代わりに使用したおかげで2バイト節約echo

いくつかの7バイトを提案してくれたhexafraction、isaacg、およびRikerに感謝

w|xclip

クリップボードはの結果に設定されwます。これはX11ベースのシステムでのみ機能します。たとえば、macOSでは、XQuartzなどのXベースのアプリケーションを使用して、このクリップボードにアクセスできます。


macOSのみの古い回答(11 9バイト):

ls|pbcopy

これにより、クリップボードのコンテンツが改行に設定されます。


どうls|xclip
seshoumara

@seshoumaraありがとう!(と私はと思うようにls /usr/bin | grep "^.\{1,3\}$"「短いコマンドを検索するためのD:P)
KritixiのLithos

3
またはw|xclip1つ少ない。ログインしているユーザーのリストをクリップボードにダンプします。
–ζ

4
または:|xclip。実際にクリップボードをクリアします。
isaacg

1
ええと、私のマシンで動作します。そして、サブミットは空の入力を期待するかもしれないのでxclip、パイプなしのベアもそうでしょう。
デニス


7

Python + tkinter、43バイト

Python 3:

from tkinter import*;Tk().clipboard_clear()

Python 2:

from Tkinter import*;Tk().clipboard_clear()

tkinterはPythonディストリビューションに含まれていますか?
ランチャー

@Cruncherそれは私のPython 3です。
DLosc17年

@Cruncherはい、debian python-tkは「コアpython」とは別のパッケージ()にパッケージ化すると信じていますが、stdlibの一部です。
バクリウ

さらに短い方法については、Dopappのコメントご覧ください。
jpaugh

@jpaughインポートスタイルをに変更する__import__("tkinter")....場合、この場合は1バイト長くなります。
トレルゼビル

7

C#、30バイト

NatJMDBgrWorkerの提案に感謝します!

System.Windows.Clipboard.Clear

WPFなしのC#、36バイト

System.Windows.Forms.Clipboard.Clear

クリップボードを空にする組み込み関数。

テストケース付きの完全なプログラム:

using System;
using System.Windows.Forms;

class ClearClipboard
{
    static void Main()
    {
        Action f =
        ()=>System.Windows.Forms.Clipboard.Clear();

        // test case:
        Clipboard.SetText("SomePassword!");
        Console.WriteLine("In clipboard initially: " + Clipboard.GetText());
        f();
        Console.WriteLine("In clipboard now: " + Clipboard.GetText());
    }
}


4
また、Clipboard.Clear()すでに関数であるため、ラムダを削除できます。
ナット

1
この回答はLINQPadで実行されるため、LINQPadの回答を追加することはありません。System.Windows.Clipboard.Clear();ただし、lprunは、VSまたはVS Codeよりも、この答えを実行するためのより軽い方法かもしれません。
JMD

@Natを省略.Formsすると、Linuxでコンパイルされず、現時点ではWindowsマシンがありません。
アドリアンプ

2
@adrianmpクラスはPresentationCore.dllにのみ含まれています。これは、WPFタイプのプロジェクトでデフォルトで追加される参照です。そのDLLがモノラル/ .NETのコアに含まれている場合、私は考えている
BgrWorker

6

Haskell、34バイト

import System.Hclip
setClipboard""

退屈なライブラリ関数です。clearClipboard同じバイトカウントもあります。


6

Notepad ++、3キーストローク

a<c-A><c-C>

文字aを挿入して選択し、キーボードにコピーします。

Notepad ++ 有効な言語であり、正規表現をサポートしているため、正規表現のスーパーセットであり、正規表現は有効な言語であると考えています。


consider regex to be a valid language参考文献 どうやらRegExpは単独ではチューリング完全ではありません。
ツェッペリン

2
@zeppelin有効な言語であるためにチューリング完全である必要はありません。
パベル

It doesn't have to be Turing Complete to be a valid languageその手段により、私たちはほとんどすべてを「言語」であると主張することができます。つまり、XMLまたはHTMLにも構文があります(RegExpとは異なり、言語と呼ばれることもあります)が、受け入れられるとは思いません。コミュニティによって支持された、純粋な正規表現の回答の例を提供できますか?さらに、Notepad ++は、プログラムで呼び出すことができるという意味で実際には「正規表現をサポート」しておらず、UIの「検索と置換」ボックスを開いてそこに正規表現を入力することは、「プログラムコード」ではありません。
ツェッペリン

1
@zeppelin meta.codegolf.stackexchange.com/a/4817/60042 <-関連するメタ投稿。<c-H>を使用<tab>してN ++の検索と置換にアクセスし、UIをナビゲートして関連するすべてのフィールドと対話するために使用できることに注意してください。また、正規表現は数の素数を決定し、数値を追加できることに注意してください。(両方とも単項で、これは正規表現のデフォルトの数値表現です)
Pavel

問題のメタ投稿は、メモ帳ではなく、非常にプログラム可能なVimおよびEmacsクラスエディターを指します。そして、はい、私は人々がこのサイトで素数性テストのためにRegExpを使用しているのを見ましたが、それは単なる面白いコーナーケースであり、RegExpが言語であることの本当の証拠ではありません。したがって、あなたの主張を証明するために、「純粋な正規表現」の賛成票への参照を提供してください。
ツェッペリン

6

Python 33バイト(Windowsでのみ動作します)

@hubacubバージョンから4バイト保存。

@Divcyソリューションを使用して、ウィンドウに切り替える3バイト

import os
os.system("fc|clip")

stackexchangeに登録したばかりなので、@ hubacubの投稿についてコメントするだけの評判はありません。「os.system」を「o.system」に減らすために1バイトを節約するために、インポートで「as o」を使用して5バイトを消費する必要はありません。


サイトへようこそ!
ルイスメンドー

6

J(Windows)、12バイト

wd'clipcopy'

wdWindows用のJの標準ライブラリです。wd 'clipcopy password'テキストpasswordをクリップボードに入れます。何も指定しないと、クリップボードが消去されます。

プログラムでプレーンテキストのパスワードをクリップボードに入れたい場合は、次を使用できます。

pass =. 'abc123'
wd 'clipcopy ' , pass

これは関数またはフィルプログラムではなく、スニペットです。有効にするには、動詞にする必要があります。次のようなことができます'clipcopy 'wd@,]
コナーオブライエン

どの「これ」を参照していますか?両方のコードチャンクは実行可能な.ijsファイルです。
デーン

私は単に誤解していたかもしれません。ごめん、笑 とにかく、あなたは間にスペースを削除することができますwdし、'clipcopy'
コナーオブライエン

ありがとう!バイトを削った。Jを読むのを助けるためにスペースに慣れているので、私はそれについて考えませんでした。
デーン

5

JavaScriptの175 148 139 135 69のバイト

ゴルフ:

<input value="c"onclick="this.select();document.execCommand('copy')">

フィドル

非ゴルフ

SitePointから助けを得た

HTML:

<input style="display: none;" id="Empty" value="x">
<input id="clipclear" type="button" value="Clear The Clipboard">

JS:

function clearclip(){
empty=document.getElementById("Empty");
empty.style.display="block";
empty.select();
        document.execCommand('copy');
empty.style.display="none";
}      
document.getElementById("clipclear").addEventListener("click", clearclip, false);


FFとChromeでテスト
TecBrat

1
ゴルフするまで投稿しないでください。今のところ、回答を削除し、編集してゴルフに追加してから、回答の削除を取り消すことができます。
NoOneIsHere

@NoOneIsHere、わかりました、先に行ってゴルフをしました。これが新しいフィドルです。
TecBrat

1
コメントする代わりに、フィドルを編集して回答に入れてください。また、ゴルフの素晴らしい仕事。+1しました。(FYI、言語は技術的にHTML + JavaScriptです。)
NoOneIsHere

5

Java 8(JavaFX)、61バイト

()->javafx.scene.input.Clipboard.getSystemClipboard().clear()

クリップボードを操作するJavaFX APIは、AWTのAPIよりも少し簡潔です;)


5

Tcl / Tkウィッシュシェル(REPL)、5バイト

cli c

ウィッシュシェル(REPL)は不完全なコマンドを許可します。あいまいさがない限り、完全なコマンドは次のようになります。

clipboard clear

4

PHP + PHP GTK 2.0、24バイト

これは、PHP GTK拡張機能が既にロードされていることを前提としています。

<?GtkClipboard::clear();

ドキュメントリファレンス:http : //gtk.php.net/manual/en/html/gtk/gtk.gtkclipboard.method.clear.html


スイッチを使用してコマンドラインでタグ<?なしでコードを実行できるため、開始タグは必要ありません。ここで詳細情報を参照してください。meta.codegolf.stackexchange.com/questions/7098/...<?-r
Kodosジョンソン

@KodosJohnson意図的に開始タグをそこに残しました。
イスマエルミゲル

@KodosJohnson彼はまだフラグにバイトを追加する必要があります。
ckjbgames

@ckjbgamesいいえ。フラグは無料です。意図的に開始タグを残したため、コードを変更しませんでした。
イスマエルミゲル

@IsmaelMiguel私は人々がバイトカウントにインタプリタ/コンパイラフラグを追加するのを見ました。
ckjbgames
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.