迷惑メール対策 : SPF, DKIM, DMARC

迷惑メール対策としての情報がわかりやすくまとまっているサイトがあったため、記載しておきます。

【URL】: http://itpro.nikkeibp.co.jp/atcl/column/17/100400412/?rt=nocnt

Python学習_その3

1年前に下書きした文章を見つけたので..... 久々に更新してみます

 

【関数例】:AUGC を入力すると、結果はATGCとなる。

(補足):U_to_T関数にAUGCを入れる。初めResult は空であり、AUGC を1文字づつif文を用いてチェックする。

---------------------------------

def U_to_T(nucs):

    result = ''

    for nuc in nucs:

        if nuc == 'U':

            result = result + 'T'

        else:

            result = result + nuc    

    return result

 

print(U_to_T('AUGC'))

---------------------------------------------

 【コマンドライン引数】

  

【その他】:利用しているPython のバージョンを確認する

     #python -V

      python 2.7.12

 

【その他】:日本語のコメントを入力する

冒頭に次の宣言(UTF-8)を利用することを宣言するとエラーが出ずに日本語のコメントを書くことができる。

#!/usr/bin/python      ← python が配置されているディレクトリの定義

# .*. coding: utf-8 .*.     ← 日本語を利用するための宣言

 

【その他】:vim/vi エディタの環境整備方法

起動時にvim の設定ファイルを自動起動させるために、自分のホームディレクトリに次のコマンドを実行する。

vim ~/.vimrc

 

【その他】:Pythonのコード規約

 ・PEP8 ( Style Guide for Python Code):スクリプトがPEP8に準拠しているかチェックする。

  ・autopep8:スクリプトをPEP8に準拠した内容に修正する。

picoCTFにチャレンジ_no2

Web Exploitation JavaScrypt 40Point

 

該当WebページをChromeの開発ツールでソースコードを確認。

var key; // Global variable.

// Since the key is generated when the page // is loaded, no one will be able to steal it // by looking at the source! This must be secure!

function generateKey() {

var i = 1;

var x = 298;

var n = 5493;

while (i <= 25) { x = (x * i) % n; i++; }

key = "flag_" + Math.abs(x); }

generateKey();

// Encode the message using the 'key'

function encode() {

var input = $("#inputmessage").val();

var output = CryptoJS.AES.encrypt(input, key);

$("#outputmessage").val(output); }

上記のJavaScryptoを実行すればFlagが獲得できそうなことは判明したため、

下記の情報を参考にしながらJavaファイルを作成。ファイル名とClass名が異なっていたため、コンパイルエラーが発生したが、その点を修正し、 #javac Javascrypt.javaコンパイルを通し、 java Javascrypt にてFlagをGET。地道に努力してプログラムスキルを向上させないと・・・ 答えを見ながら試行錯誤しているがとても勉強になる!

(参考)URL

http://lynkos420.blogspot.jp/2014/11/javascrypt-40.html

picoCTFにチャレンジ_no1

PicoCTFとは:

米国カーネギーメロン大学が開発したセキュリティ人材を主眼に置いたオンラインで参加可能なCTF形式の教育コンテンツ。Web/ソフトウェア/フォレンジック/暗号/脆弱性を中心にコンテンツが準備されている。

 

XORの問題: Pythonを利用して暗号化されているデータの複合を行う問題

-----------------------------------------------------

from collections import Counter   ; 

frequency = Counter( )

with open('encrypted', 'r') as f:

    data = f.read()                                ;encrypted ファイルをすべて読み込み、dataに格納

    for ch in data:

        frequency[ch] += 1

c = frequency.most_common(10)[0][0]      ;most_commonメソッドを用いて、多い要素10個を取り出し

m = ' '

print (repr(c) + ' decrypts to ' + repr(m))     ; 特に本行は必要なし

def xor(input_data, key):        

    result = ""

    for ch in input_data:

        result += chr(ord(ch) ^ ord(key))        ;  "^" : 排他的論理和を示す

    return result

k = xor(c, m)

print (xor(data, k))

-----------------------------------------------------

 

[参考URL]

http://www.lifewithpython.com/2014/05/python-count-elements-in-lists.html

 

 

Python学習_その2

Python学習_その1の続きです。(そろそろ配列という言葉も登場し、挫折ポイントが登場してきました。)

 

【リストとタプル】:Perl の配列に相当するものとのこと。。

 ・リストやタプルとは?: Perl の配列に相当するもの。

  リスト:作成後に編集可能。 ※迷ったらリストにした方が良い。(🔰)

     (書き方): x = [1, 2, 3]

  タプル:最初に作成したものを後から変更ができない。

     (書き方): x = (1, 2, 3)

            ※尚コマンドを用いて、タプル→リストに変換することは可能。

 

【出力結果を改行せずに表示する方法】

・文字列「Hello」 と「Python」 を表示する場合、特に考慮せずに print すると改行ありとなってしまう。

  [改行ありのケース]

   for w in [ 'Hello', 'Python']        ==>  結果       Hello

                print (w)                                                      Python

  [改行なしのケース]

           for w in [ 'Hello', 'Python']       ==>  結果  Hello, Python

                 print w,            ←ここがポイント

・コメントを挿入する場合 

  #:この列がコメント列として認識される。

  「”」ダブルクウォーテーション or「 '」シングルクウォーテーション を

   3つ以上並べて書く。(始まりと終わりに)

 

【辞書 ( x ) を用いての表示方法】※辞書を用いるときは、下記のような条件に合致する件数を調べたい時に利用するとのこと。。まだイマイチ理解できていない orz..

------------------------------------------------------------------------

x = {'even':0, 'odd':0}      ## even, odd というキー

for i in [1,2,3,4,5]:

     print ('i=' +str(i))   ## 処理を確認するために入れた表示

           if i % 2 ==0:     ## i を2 で割った余りが 0 であるならば

           x['even'] += 1    ## 左記は、 x['even'] = x['even'] + 1  を意味する

           y = x['even']

           print ('y='+str(y))

     else:

           x['odd'] += 1

           z = x['odd']

           print ('z='+str(z))

print ('even=' + str(x['even']))

print ('even=' + str(x['odd']))

-------------------------------------------------- 

 

【勉強に利用したコンテンツ】

1. You Tube : Python 入門

    https://www.youtube.com/watch?v=FQabMlA5esM

2. 

Pythonで学ぶ 基礎からのプログラミング入門 (1) Pythonでプログラミングを学ぶ理由とは? | マイナビニュース

 

3. Pythonを勉強するための教材 

http://ww1.pep8-ja.readthedoc.org/ja/latest

 

 

 

 

攻略英語リスニング_Lesson33_Financial Crisis

[Word]

-Take out a mortage: 住宅ローンを組む

 (mortage:抵当、何かを抵当に入れること)

-Unscrupulous  (a): 無節操な、平気で悪事をする

  対義語: Scrupulous : 良心的な、誠実な

-prime rate : 優良顧客に対する最優遇の貸付金利

 subprime : 優良顧客には及ばない(通常の住宅ローン審査に通らないような人々向け)

- dreadnaught : 怖いもの知らず、勇敢な、 "dread" :恐れ、"naught": ゼロ

- eviction : 立ち退き

- foreclosure : 抵当流れ、差し押さえ

-greedy : よく深い

- rapacious : 肉食の、強欲な、 (類):greedy

- shady : 影(陰)の多い / 怪しげな    (参): shade : 陰

- irresponsible : 無責任な、 (対): responsible

- rickety (a) : ガタガタする、グラグラする、ぜい弱な

- credit crunch : 貸し渋り、金融引締め (crunch: 嚙み砕く、不足、引締め)

-plummet : 急落する

-bail out : 救い出す、保釈する、逃げる。例: Are you bailing out on me ? 私の元から去るつもり?

-ramification : (好ましくない)結果、影響

- sum up : 合計、要約すると

-power struggle : 権力闘争

 

[Repeat & look up]

 The company president quit suddenly, and what followed were power struggle and confusion.  

Python学習_その1

自分の目標であるプログラミングスキル向上に向けて、勉強を開始。ただしお金はかけれないため、YouTube を用いて勉強します。英語と同じですね・・ YouTubeを利用すれば毎日英語のシャワーを浴びることが可能です・・しかも無料で・・本当に便利な世の中ですね。

 

Python とは】

PythonPerl も共にスクリプト言語

PythonPerl と比べ文法にうるさいため、Publicにプログラムを共有するためには非常に適している。Perl は、自分用に利用するような使い分け方もあるとのこと。

・学習法としては、PythonまたはPerlのどちらかを決めて、深く勉強することが望ましいとのこと。

・Python2 とPython3 では文法が異なる。(例:Python2 : python test.py,  Python3: python3 test.py)

・条件文においては、Pythonは条件文中身のインデント「:」を用いないと構文エラーとなる。(Perlは関係なし)

・文字列を表す際は、シングルクウォーテーション(' )の利用が推奨されている。(ダブルクウォーテーション利用も可能だが。)

演算子の「+」は、文字列であれば文字列の結合が行え、数値であれば数値の和を求めることが出来る。

 

【勉強に利用したコンテンツ】

You Tube : Python 入門

https://www.youtube.com/watch?v=FQabMlA5esM