Есть два фактора, сближающих между собой эти два слова. Во-первых, произношение и то, как они пишутся в русском языке. Разница всего в одной букве. Второй фактор - вымышленный доктор Лектер. Все знают этого персонажа из "Молчания ягнят" и других фильмов. Энтони Хопкинс прекрасно сумел совместить два в одном. На этом сходства заканчиваются. Происхождение у слов совершенно разное. Слово "canibal" перекочевало в испанский язык благодаря открытию Америки. На острове Гаити проживало агрессивное племя, которое соседи называли "galibi" - "храбрые люди". Название "Карибы", между прочим, также пошло отсюда. Европейцы исковеркали произношение и стали произносить "caniba". И тут пошло-поехало. Мореплаватели перевезли это словечко в Испанию, откуда оно отправилось уже по всей Европе. А что же с Ганнибалом? Это финикийское имя. Расшифровывается, как "Баал милостив". Баал - божество западных семитов, в том числе финикийцев. Как видите, всё очень просто и прозаично. Наиболее известный носитель имени