Monday, March 19, 2012

Don't use bcrypt

(Edit: Some numbers for you people who like numbers)

If you're already using bcrypt, relax, you're fine, probably. However, if you're looking for a key derivation function (or in bcrypt's case, password encryption function) for a new project, bcrypt is probably not the best one you can pick. In fact, there are two algorithms which are each better in a different way than bcrypt, and also widely available across many platforms.

I write this post because I've noticed a sort of "JUST USE BCRYPT" cargo cult (thanks Coda Hale!) This is absolutely the wrong attitude to have about cryptography. Even though people who know much more about cryptography than I do have done an amazing job packaging these ciphers into easy-to-use libraries, use of cryptography is not something you undertake lightly. Please know what you're doing when you're using it, or else it isn't going to help you.

The first cipher I'd suggest you consider besides bcrypt is PBKDF2. It's ubiquitous and time-tested with an academic pedigree from RSA Labs, you know, the guys who invented much of the cryptographic ecosystem we use today. Like bcrypt, PBKDF2 has an adjustable work factor. Unlike bcrypt, PBKDF2 has been the subject of intense research and still remains the best conservative choice.

There has been considerably less research into the soundness of bcrypt as a key derivation function as compared to PBKDF2, and simply for that reason alone bcrypt is much more of an unknown as to what future attacks may be discovered against it. bcrypt has a higher theoretical-safety-to-compute-time factor than PBKDF2, but that won't help you if an attack is discovered which mitigates bcrypt's computational complexity. Such attacks have been found in the past against ciphers like 3DES. Where 3DES uses a 168-bit key, various attacks have reduced that key size's effectiveness to 80-bits.

PBKDF2 is used by WPA, popular password safes like 1Password and LastPass, and full-disk encryption tools like TrueCrypt and FileVault. While I often poke fun at Lamer News as a Sinatra antipattern, I have to applaud antirez on his choice of PBKDF2 when he got bombarded with a "just use bcrypt!" attack (although bro, antirez, there's a PBKDF2 gem you can use, you don't have to vendor it)

The second cipher to consider is scrypt. Not only does scrypt give you more theoretical safety than bcrypt per unit compute time, but it also allows you to configure the amount of space in memory needed to compute the result. Where algorithms like PBKDF2 and bcrypt work in-place in memory, scrypt is a "memory-hard" algorithm, and thus makes a brute-force attacker pay penalties both in CPU and in memory. While scrypt's cryptographic soundness, like bcrypt's, is poorly researched, from a pure algorithmic perspective it's superior on all fronts.

The next time you need to pick a key derivation function, please, don't use bcrypt.

70 comments:

Singpolyma said...

I think the point of "just use bcrypt" is "don't use (even salted) sha1/sha2"

Blair Strang said...

Hi,

The reason I usually recommend bCrypt is actually due to the human factors involved; essentially, bindings are available for every language, the API is consistent and fairly foolproof.

Usually we don't need "optimally secure" hash functions, we just need "good enough to be indistinguishable from best practice" and bCrypt fits the bill here fine.

Lukas Šalkauskas said...

Implementation in Python here: https://github.com/dotpot/Crypton

CaStarCo said...

@Singpolyma Why not salted sha1/sha2? Thanks in advance.

Astounding said...

@CaStarCo: A simple cryptpass = salt + SHA256(salt + cleartextpassword) is exactly as easy to brute force crack as cryptpass = SHA256(cleartextpassword) for a single password. Now the unsalted is more vulnerable to attacking multiple passwords in a database at once as everyone using the same password will be cracked simultaneously, while the salted, if the salt is good, will only crack the one.

The benefit of PBKDF2, bcrypt, and scrypt is the added cost of multiple iterations that ramp up the offline brute-force attack cost, making them far more secure than even salted hashes.

yawn said...

@CaStarCo

google hashcat - it will crack your password in 2 seconds or so, with or without salt :-)

Twister said...

How would you respond to this post?

http://www.labnol.org/internet/unique-password-for-every-site/21288/

I am just a follower of the above blog, I just want to know your opinion.

Anonymous said...

I'm sorry, but you're wrong in almost all your points.

First of all bcrypt is not a cipher, it's a key derivation function. That might seem nitpicky, but their use cases and attack scenarios differ wildly.
With a cipher, you usually have many plaintext, ciphertext pairs and want to find the key encrypting the plaintext to the ciphertext (so that you canthen decrypt ciphertexts for which you don't have plaintexts).
With a key derivation function you usually have a low entropy input and want to create an output that is computationally difficult to distinguish from high entropy output. Such a low entropy input can be a password whose key space is usually very small. Thus a KDF in our context has to be slow to compute, and only with the reference implementation, but with any implementation. "Breaking" such a KDF means finding a short cut that allows significantly faster computation than with the reference algorithm.

Next, why do you assume that bcrypt has had less cryptoanalytical scrutiny than PBKDF2. Both are about the same age. In fact one of the reasons bcrypt is often mentioned as a good choice is because it has aggregated a lot of trust over the last 13 years. Also there are a lot of bad examples in the use of PBKDF2, which mostly stem from too low iterations count. TrueCrypt, which you mention as one of the examples why PBKDF2 is trustworthy, is an especially bad at choosing reasonable parameters: They only use an iteration count of 1000 for most hashes (see http://www.truecrypt.org/docs/?s=header-key-derivation). The PBKDF2 values in the table you copied from http://www.tarsnap.com/scrypt/scrypt.pdf were calculated with an iteration count of 86000 (first entry - "100ms") and 4,300,000 (second entry - "5.0s")! WPA, an other example you mention, is also notoriously bad at using good iteration counts. That's the reason dictionary attacks on WPA-PSK have become so popular. I agree with Blair Strang here, that one of the main advantages of bcrypt is that there is much better documentation available and implementations have better default values.

A side note on the 3DES attacks. Technically, yes, you can use a 3DES keying option whose key size is 168. But nobody ever argued, that the actual strength of the cipher was 168 bit. In fact one of the first things you read about Triple DES is that its actual strength is in really at most 112 bit, because of a meet-in-the-middle attack that's inherent in its design. And the "attack" you mention that reduces it to 80 bit does not even apply to normal use cases of 3DES (take a look at the paper that's linked in the Wikipedia article) and it definitely has no application concerning KDFs. Actually 3DES is an example of an old algorithm, that is still one of the strongest available. The main reason everyone switched to AES was that it was by far faster.

If you want to be on the safe side with password hashing I, you can diversify your choice: Let p be your password and SaltI be 128 bit random values. Derive p_1 = HMAC(Salt1+"PBKDF2") with key sha256(p), p_2 = HMAC(Salt2+"bcrypt") with key sha1(p) and p_3 = HMAC(Salt3+ "scrypt") with key sha1(p). Derive key k1, k2 and k3 by using the key derivation function PBKDF2, bcrypt and scrypt respectively, each of them using 1/30 seconds CPU time with input p_1, p_2 and p_3 respectively. Compute the key (or database reference entry) as sha256(k1+k2+k3). Here "+" designates the concatenation of byte arrays. This way you get the best of all worlds: A proven bcrypt, an experimental but very promising scrypt and a traditional PBKDF2. The important aspect, is that you tweak the parameters of each KDF such that they take long to compute (that's why I proposed 1/30s CPU time). Then your KDF is as strong as the strongest of the three.

lee x said...
This comment has been removed by the author.
lee x said...

why does the 40 char text requre less money then 10 char text to brake in the same time ?

(could not edit)
i guess they got the 10 char and 40 char box mixed up

Adrie Donker said...

There's a nasty mistake in the documentation on github. It states you should: include 'scrypt'. This should be: include SCrypt. Took me half an hour to find out.

Anonymous said...

I really don't understand the argument for bcrypt. There's no problem in setting the rounds in ordinary crypt() for SHA-512 etc, right?

crypt('abc123', '$6$rounds=1234$mysaltysalt$');

That will do 1234 rounds of SHA-512. Now what's the point of bcrypt, which can only handle Blowfish hashes?!

dan thornbury said...

Use bcrypt, don't use bcrypt. To hell with it; I'm sticking with unsalted md5!

Tibor Sekelj said...

Wrong, your password is always only as strong as the weakest one if the three

What is no where mentioned is how does bcrypt with compare with pbkdf2 using sha512

Isn't bcrypt per se less secure as it uses a shorter bit length?

In terms of "cost" you can ramp up pbkdf2 iterations. Wouldn't that be enough?

programaths said...

Cypher ALGO1 : Rshift(in)
Cypher ALGO2 : Lshift(in)
Cypher ALGO3 : Rshift(Lshift(in))

Conclusion : Password can even be weaker than the weakest algorithm!
(In that case, composition gave identity)

John Reeves said...
This comment has been removed by the author.
John Reeves said...

@Tibor Sekelj Wrong, read it again. You have to be able to crack all 3 algorithms to get the password.

The drawback to the approach of using 3 algorithms though, is that you can only use 1/3 of the work factor for each, so if by magic 2 of the 3 are totally compromised, the third algorithm is much faster to crack. Which in theory should still be really hard, but just pointing it out.

Anonymous said...

Change the title to hsckernews troll bait so I can listen to hundreds of clueless hacks bang on about something they don't understand, and using this post as a reference.

Anonymous said...

It's interesting that hashcat sample runs seem to indicate two orders of magnitude faster checks per second for bcrypt than for PBKF2 which seems to suggest the opposite of what this post suggests…

hashcat-plus

John Reeves said...

YAHOO, you missed a k in that benchmark. The PBKDF2 is the one that's orders of magnitude faster.

mlewis said...

I read through LamerNews's source. Jesus, so much logic in the app.rb file. So much logic.

The Casual Vegan said...

The funny aspect to this discussion is that many people are using either unsalted or single salted MD5 if they even bother to hash passwords at all.

phil pirj said...

No need for a gem, it's in stdlib already: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/PKCS5.html

Anonymous said...

I think some of this concerns look a bit silly. All KDF was designed to solve something that unsolvable at first.

All algo is just an attempt to postpone the problem. None is future proof.

All KDF concern about computational resources so they add some kind of workload parameter to tune the alogos.

This approach sound just like an arm wrestling. (Let see who is the strongest one.)

In reality all computers are not grow in CPU speed or memory capacity altogether. What really matter is resources gap between low end servers and high end super computers. The gap is wider as the time pass. In near future renting a cloud computing power can be cheap but we still use the same old school servers. (The hash compare verification is not suitable for offline system at first.)

So I think we should just pick one promising algorithm, pick one magic number as workload parameter and the salt.

Never change them and admit that we are lost. (In computational power racing with open algorithm standard. I don't think one can win by brilliant algorithm solutions.)

The good thing is offline bruteforcing is the worst case scenario when a server leaks password hash. It isn't leak if other security systems are functional correctly. And attacker probably just got only hash collision version of password.

If users is not reusing the same password for everything. I think that should be suffice but if not the user is vulnerable to services owner of everything they use at the beginning.

KDF is just a tools that limit some more criteria to attackers.
For example you can specify that only NSA and Jeff Bezos or someone along the line can crack the password not others.
And of course common criteria of attackers is the one that can also obtain password hash value.

P.S. The KDF in one user scenario is another story (eg. generating symmetric cipher key to encrypt an offline file.) you can make it as slow as a few seconds.

alex said...

I'm gonna add another point to critics here.
PBKDF2 is GPU friendly, where bcrypt and scrypt are not

Pavel Kravchenko said...

Thanks for the great article!

Could you please specify what parameters (N, r, p) were used for scrypt (64ms) and scrypt (3.8 s)? And what processor was used to achieve this timings?

Anonymous said...

@perseids - Did you just invent your own solution for a common crypto problem?

Faraz said...

Take a look at also argon2, the 2015 phc winner.

Anthony said...

I love to use PBKDF2 more in generating encrypted files.

OpenSSL even provides it as a library function. But OpenSSL does not provide it for encrypting files! It currently uses PBKDF1.5 for its 'enc' command line usage!

Arrrgghghhhh.....

Charlie Hamilton said...

I was very pleased to find this web-site. I wanted to thanks for your time for this wonderful read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you blog post.
Back Office Support Services

Cinta Azza said...

This blog is so nice to me. I will continue to come here again and again. Good luck.
Visit my link as well
Obat Pelangsing Badan

Obat Pelangsing

Obat Penggemuk Badan

Obat Penggemuk

Minyak Lintah Hitam

Obat Kuat Cialis

Obat Kuat Viagra

Obat Kuat Levitra

Alat Pembesar Penis

Cinta Azza said...

This blog is so nice to me. I will continue to come here again and again. Good luck.
Visit my link as well
Vakum Pembesar Penis

Procomil Spray

Vimax Spray

Obat Kuat Semprot

Obat Kuat Herbal

Obat Kuat Pria

Cream Pembesar Penis

Minyak Pembesar Penis

Oil Pembesar Penis

Amir kh said...

دانلود فیلم Bedlam 2015
دانلودنرم افزار قفل کردن مک با بلوتوث Bluetooth Unlock v4.1.0 MacOSX

قمم التميز said...

شراء اثاث مستعمل
شراء الاثاث المستعمل بالرياض
شراء اثاث مستعمل شمال الرياض
شركات شراء الاثاث المستعمل بالرياض
ارقام شراء الاثاث المستعمل بالرياض
محلات شراء الاثاث المستعمل بالرياض
حقين شراء الاثاث المستعمل بالرياض

Aliya said...

Surveillancekart | CCTV System
Pestveda | Pest Control
Termite control
cctv installation services
best home security camera system

shina said...

cctv camera dealers in delhi
cp plus cctv camera online
hikvision camera online
cctv camera installation services in delhi
cctv camera installation services in gurugram

shina said...

yj

Dida ELhaik said...


تقدم شركة تنظيف بأبها أفضل الآلات الحديثة لتنظيف وتعقيم السجاد والموكيت حيث تعتبر، عملية تنظيف السجاد والموكيت بالبخار من الطرق الحديثة التي تعرف في مجال التنظيف ومن المعروف ان عملي التنظيف بالبخار من الطرق الشائعة عالميا حيث يقوم فريق عمل شركة تنظيف بأبها باستخدام ها في عملية تنظيف السجاد والموكيت لأنها قادرة على قتل الحشرات الدقيقة الت لا تري بالعين المجردة شركة تنظيف مجالس بابها
شركة تنظيف موكيت بابها
شركة تنظيف كنب بابها
شركة تنظيف سجاد بابها


Dida ELhaik said...

شركة تنظيف بيوت بالباحة
شركة تنظيف فلل بالباحة
شركة تنظيف منازل بالباحة
شركة تنظيف شقق بالباحة
شركة تنظيف بالباحة
شركة تنظيف مجالس بالباحة

Dida ELhaik said...

شركة تنظيف خزانات بالباحة
شركة عزل خزانات بالباحة
شركة رش مبيدات بالباحة
شركة مكافحة حشرات بالباحة

Emma said...

avriq Desktop/Laptop Repair
avriq yellow pages
avriq bbb
avriq business services
avriq
Avriq India

khaled ali said...

شركة الصفرات للتنظيف بالرياض
شركة الصفرات لمكافحة الحشرات
شركة الصفرات لرش المبيدات بالرياض

Escorts cart said...

Female Escorts She whispers to me that there can be every day that she and those who she invitations back into her care, will take all the greed removed from the white skinned. She will destroy their means that feeds their greed.
Female Escorts,High Class Call Girls,Escorts Girls,Escorts ,Escorts near me
Female Escorts

Escorts cart said...

Female Escorts "Well Ian "said the urologist, " I have some sensible news. There is no proof of any cancer outside of the prostate" The news took some seconds to wash over me. I nodded silently in acknowledgement, the gravity of what would possibly are causing tears of relief to well up. I had dodged a bullet. A reprieve had been granted.
Female Escorts





Escorts cart said...

Female Escorts:But, just as within the fifth century B.C. to the sixteenth century A.D., when Aztec ladies approached fifteen, the impetus for the Quinceanera celebration is alive and well and is a family day of happiness and memories to cherish forever.
Female Escorts,High Class Call Girls,Escorts Girls,Escorts ,Escorts near me
Female Escorts

Dida ELhaik said...

Why Aafesh Transport Company in Riyadh is at the forefront
- The Kingdom Experts Company for the transfer of Alafash in Riyadh good packing for each piece of furniture on the latest packaging tools suitable for each piece of furniture.
- The company also provides the services of dismantling room curtains and installation again without additional cost.
- The company to polish and clean all the pieces of furniture before the packaging process to save time so you do not need to clean the pieces of furniture upon arrival to the new place to be transferred to.
- The Kingdom Experts Company is characterized by disciplined schedules and is not a reason for any delay or waste of time for its valued customers.
- The transport company Afsh Riyadh is characterized by its reliance on modern methods and methods in the transfer of development and permanent development in the provision of services.
Dear customer, The process of transferring luggage from one place to another is very tired and difficult and not as easy as some believe and needs technicians, specialists, workers and technicians to do; If you want to get the best service to transport the loaf of the highest levels of good planning and quality, you will not find a better company Transfer of Afesh in Riyadh.
The aim of Nafal Afesh Company in Riyadh is to satisfy our valued customers. We promise you that you will receive all our services to your full satisfaction and attest to the efficiency, skill and honesty of our customers who have already dealt with us.افضل شركة تركيب اثاث ايكيا بالرياض
افضل شركة تركيب ستائر بالرياض
افضل شركة تنظيف مكيفات بالرياض
افضل شركة تركيب غرف نوم بالرياض
افضل شركة تركيب باركية بالرياض
افضل شركة تركيب عفش بالرياض

shabnam praveen said...

Call girls in Kolkata
Call girls in Chandigarh
Call girls in Chandigarh
Call girls in Gurgaon
Call girls in Chandigarh
Call girls in Chandigarh

shabnam praveen said...

Call girls in Lucknow
Call girls in Guwahati
Call girls in Mumbai
Call girls in Jaipur
Call girls in Jaipur
Call girls in Jaipur
Call girls in Bangalore

Alex daina said...

The main time the borrower can lose his auto is the point at which he or she defaults from installment. Losing your auto as the result of the non-installment of the advance is one reason why it is critical to reimburse the credit. In reimbursing the credit, loaning firms enable the customer to pick the term of installment. Along these lines, you would have the capacity to meet your installments in your own particular terms. It would likewise be less demanding for you to reimburse the advance. 24/7 car title loans near me chicago

INT Foundation Group said...

Well done guys, I appreciate it. It is really grateful to read about him. I will recommend forward to take training from you. Actually, I am driving educational service in the UK but You have an Option to Study in UK, Study in London, Study in York, Study in Spain, Study in Malta, Study in Abu Dhabi, Study in Dubai related Engineering foundation course, One to one English Tutoring for outsiders, Pre-Master courses etc. If you want to connect with us, it will be a great pleasure for us. Even we are welcoming to everyone here. you can go through from our official website also.

Mak Realtors said...

Just as selling properties buying does not get any easy. If anything, it's probably more worrisome as you are on a budget and you want a property that not just matches your budget but also something that fulfils your other requirements such as proximity from schools/offices/markets etc., traffic conditions in the area and a number of others. It is essential that you get in touch with those who know everything about the real estate market, after all you would want to look for those who can get you the best property at the best price.we have lots of options of properties Just Call Us: +91-11-29835170 , +91-11-29843023 , +91-11-29835250
3 BHK Flats in South Delhi
3 BHK Flats for rent in South Delhi
4 BHK Flats in South Delhi
2 BHK Flats in South Delhi
farmhouse in South Delhi
Kothi for Rent in South Delhi
bungalows for Rent in South Delhi

Harry james said...

thank you for sharing information rural development programme in india

Shama Malik said...

Truly appreciating the substance that you have set up on the web. It genuinely influences me to feel bewildering. I experience the bewildering content said on your site all the time. It just influences me to feel stunning. Inspecting the detail that you have given is genuinely exceptional. Keep on concocting well done and I would without a doubt value your up and coming substance like this one. Your peruser base is excessively solid that I can see from your preferences and offers.
Chennai Escorts | Chennai Escorts | Chennai Escorts | Chennai Escorts | Chennai Escorts | Chennai Call Girls

Cairo Glitz Lighting said...

Wow, Amazing Blog, I go through your blog and i got lots of interesting things,which could be beneficial for eveyone.i'm really inspired from ypur blog content. Thanks for sharing such a nice blog.For Chandeliers, Lighting, lighting fixtures, crystal chandelier, wall sconce, Pendant lighting, flush mount lighting, lights, luxury chandeliers,ceiling lights you can visit our Website or Contact Our Toll Free Number: 1-844-694-5489.

shweta gupte said...

Chennai escorts

escorts in Chennai

independent Chennai escorts

Chennai call girls

call girls in chennai

Chennai independent escorts

Chennai escorts

escorts in Chennai

independent Chennai escorts

Chennai call girls

call girls in chennai

Chennai independent escorts


Chennai independent escorts

Chennai escorts

escorts in Chennai

independent Chennai escorts

Chennai call girls

call girls in chennai

Chennai independent escorts

wahyu saputra said...

Situs Yang Banyak Membantu Kami

Vimax | Obat Vimax | pembesar penis

vimax

Obat Vimax

vimax canada

pembesar penis

obat pembesar penis

pembesar penis terbaik

pembesar penis permanen

jual Obat vimax

vimax asli

Sayna Nandy said...

It's hard to find knowledgeable people on this topic, but you sound like you know what you're taking about...
https://bit.ly/2DNN5JA

https://bit.ly/2tA8keM

https://bit.ly/2H4MjcI

https://bit.ly/2aI8drA

Sayna Nandy said...

Lovely post dear, it gives me help and some really good information. please keep posting his type of stuff...
https://bit.ly/2r4Ats1

https://bit.ly/1oyIrrr

https://bit.ly/2lDUlB3

https://bit.ly/2J6aU2F

Sayna Nandy said...

I just love this article, I'll pass this site along, for some several people who could really use this information...
https://bit.ly/2K1vKAF

https://bit.ly/2seCeEC

https://bit.ly/1J5FbuA

https://bit.ly/2JATq21

Support4You said...

How To Get Amazon Fire TV Stick Registration Bypass or Activation

how do i get help for my issues

Zoya said...

Awesome post thanks for sharing.

Body Massage in Mumbai
Body Massage in Hyderabad
Body Massage in Thane
Body Massage Parlour in Mumbai
Body Massage Center in Mumbai
Body Massage Parlour in Mahim
Female to Male Body Massage in Mumbai

toko erogan said...

Erogan Pills
Obat Pembesar Penis Erogan Asli
Erogan Asli
Obat Erogan
Erogan
Obat Erogan Usa Asli
Jual Obat Kuat Viagra Usa Di Jakarta
Jual Viagra Di Jakarta
Jual Vimax Asli Di Jakarta
Agen Vimax Canada Di Jakarta
Obat Pembesar Penis Asli Ampuh Aman
Hammer Of Thor
Penirum
Penirum

VoIP PBX Express said...

Hey, Nice Blog. Thank You for Sharing Such a nice content. An IP PBX is a private branch exchange (telephone switching system within an enterprise) that switches calls between VoIP (voice over Internet Protocol or IP) users on local lines while allowing all users to share a certain number of external phone lines. The typical IP PBX can also switch calls between a VoIP user and a traditional telephone user, or between two traditional telephone users in the same way that a conventional PBX does. The abbreviation may appear in various texts as IP-PBX, IP/PBX, or IPPBX. VOIP PBX Express provide various services like cisco phone system, small business phone system, voip phone system, pbx phone system, pbx system,business phone systems, office phone systems, pbx,
phone systems, telephone systems

Eillen Sharma said...

If you want to spend a night with Kolkata escorts or Kolkata escorts girl visit
https://www.kolkataescortsgirl.com/
Escort service in Kolkata
Kolkata call girls
Call girls in Kolkata
Kolkata escorts

Eillen Sharma said...

Call Girls in Jammu
Call Girls in Jammu
Escorts in Jammu
Escort service in Jammu
Jammu Call girls
Escort fees in Jammu

Eillen Sharma said...

Thanks for sharing your blogs...Will be eagerly looking for your next blog ....Visit our website on
https://www.pritykhanna.com/
Call girls in Lucknow
Call girl in Lucknow
Lucknow call girl
Lucknow escort

Unknown said...

AvriqPrinter RepairPrinter InstalltionWifi trouble shooting
Software InstalltionThanks for posting Really Such Things. I should recommend your site to my friends.
Virus removal

Unknown said...


alat bantu sex wanita penis mutiara
alat bantu sex wanita penis maju mundur
alat bantu sex wanita penis getar
alat bantu sex wanita penis manual
alat bantu sex wanita penis kelabang
alat bantu sex wanita penis ikat pinggang
alat bantu sex wanita penis tempel jumbo
alat bantu sex wanita penis tempel
viberator kapsul getar
alat bantu sex wanita fairy pocket mini

viswanath said...

AWS Training in Bangalore - Live Online & Classroom
myTectra Amazon Web Services (AWS) certification training helps you to gain real time hands on experience on AWS. myTectra offers AWS training in Bangalore using classroom and AWS Online Training globally. AWS Training at myTectra delivered by the experienced professional who has atleast 4 years of relavent AWS experince and overall 8-15 years of IT experience. myTectra Offers AWS Training since 2013 and retained the positions of Top AWS Training Company in Bangalore and India.


IOT Training in Bangalore - Live Online & Classroom
IOT Training course observes iot as the platform for networking of different devices on the internet and their inter related communication. Reading data through the sensors and processing it with applications sitting in the cloud and thereafter passing the processed data to generate different kind of output is the motive of the complete curricula. Students are made to understand the type of input devices and communications among the devices in a wireless media.

artisculun said...

Thanks for sharing this quality information with us. I really enjoyed reading. Will surely going to share this URL with my friends. drinversin