Here’s a small encryption/decryption tool that works based on AES algorithm. No matter how weak your password is, the program converts it to a 32 digits hexadecimal number before encrypting. This is achieved by finding the MD5 hash of the password using hashlib python module. This hash is used to encrypt the file.
The idea in my mind while writing this program was this:
Suppose a cracker gets an encrypted file and he figures out it’s encrypted using AES somehow. Then he starts brute force attack on it to find the key and extract information. If the password used to encrypt that file is weak and if it’s based on a dictionary word, the cracker can easily figure out the password. Hence the password given by the user must be made stronger by the encrypting program. And the best way to make a password strong is by using digest algorithms since it’s unique to a string.
What do you think? Am I wrong? Thank you
Wrote a small python script that can be used with your favorite text editor as a simple note taking application. Hope you like it, suggestions are always welcome
Here’s a small python script to update and read tweets from different timelines. You can use it with head/tail commands to customize the output. Actually, I wrote this script just for personal use and now I would like to share it with you Thanks to tweepy python module, make sure it’s installed before trying the script
#!/usr/bin/env python # Copyright 2011 Ershad K <ershad92@[nospam]gmail.com> # Licensed under GPL Version 3 import sys import tweepy CONSUMER_KEY = ' Fill here' CONSUMER_SECRET = ' File here too' ACCESS_KEY = ' Type yours here' ACCESS_SECRET = 'Type yours here too' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) api = tweepy.API(auth) if sys.argv == 'u': api.update_status(sys.argv) elif sys.argv == 'p': public_tweets = api.public_timeline() for tweet in public_tweets: print tweet.user.screen_name,":",tweet.text print "" elif sys.argv == 'r': mention_tweets = api.mentions() for mtweet in mention_tweets: print mtweet.user.screen_name,":",mtweet.text print "" elif sys.argv == 'h': friends_tweets = api.home_timeline() for ftweet in friends_tweets: print ftweet.user.screen_name,":", ftweet.text print ""
Hope you like it
If the seek bar of your rhythmbox is not working with some mp3 files, it might be an issue with Variable Bit Rate of them. The tool, ‘vbrfix’ written by William Pye solves the issue, but the problem is that it doesn’t have an option to search for files recursively. Here is a small python script that gets the paths of multiple mp3 files recursively and give them as arguments to vbrfix tool. Make sure you install vbrfix (from the software repo) before running the script.
Please see comments for a better, 1 line substitute to do the same. Thanks to Rajeesh ettan and Syam ettan
#!/usr/bin/env python # -*- coding: utf-8 -*- # # vbrfixdir.py # # Copyright 2011 Ershad K <firstname.lastname@example.org> # # Usage: python vbrfixdir.py # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. import sys import os quote = '"' folder = sys.argv find_command = "find " + folder find_command += " > mp3files_list" os.system(find_command) os.system("sed 1d mp3files_list > mp3files_list1"); f = open("mp3files_list1", 'r') for line in f: line = line[:len(line)-1] command = "vbrfix -always " command += quote + line + quote command += " " + quote + line + quote print command os.system(command) os.system("rm mp3files_list mp3files_list1")
Improvements to code and suggestions are always welcome, Happy Hacking
It was some conversations in Twitter with @aashiks and @geohacker that made me write this script. The conversation goes like this:
geohacker : What is the best way to archive my twitter timeline? I think I'm loosing several precious tweets! #help #please ershus : Copy-paste ? aashiks : @geohacker ask @ershus to write a python script and retrieve data using the twitter api ershus : @aashiks My god! ഞാന് ഒന്നും പറഞ്ഞില്ല ! ദയവായ് ക്ഷമിക്കൂ..... PS: വിടാന് ഉദ്ദേശമില്ല, ശ്രമിക്കാം ( @geohacker ) aashiks : @geohacker - kandallo ? thats how you do it @ershus vegam V0.1 erakku
Well, this little script is born! Thanks to them, else I would not have written anything like this.
This is my first ‘working’ python script and I’m very happy to share with you. I’ve just started using python, you may be able to suggest a lot of improvements in the code. Please help me by pointing out the mistakes and other suggestions.
This script uses python-twitter library, please make sure it’s installed before running the code.
Thanks to Rajeesh ettan who helped me with unicode issues and time.sleep()
Here’s the code:
#! /usr/bin/env python # -*- coding: utf-8 -*- # pyTweetBackUp.py # Version 1.0 # # Copyright (C) 2010 - Ershad K email@example.com # # Licensed under GPL Version 3 import os, sys, codecs import time import twitter # Change the following values username = 'USERNAME' password = 'PASSWORD' backup_file = 'twitterbackfile' #File name or Path + File name sleep_time = 5 #seconds fout = codecs.open(backup_file, 'a') #to create such a file api = twitter.Api(username, password) while (True): time.sleep(sleep_time) timeline = api.GetFriendsTimeline(username) for s in timeline: #print "%s\t%s" % (s.user.name, s.text) tweet = s.user.name + "\t" + s.text fin = open(backup_file, 'r') x = fin.read() y = x.find(tweet.encode("utf-8")) fin.close() if y < 0: fout = codecs.open(backup_file, 'a') text = s.user.name + "\t" + s.text + "\n" fout.write(text.encode("utf-8")) fout.close()